「アウトプットと言う名の備忘録@Texas」

日本じゃない何処かの脳筋パイソニスタによる何かしらの走り書き

【ReactJS入門】SublimeTextでのシンタックスハイライトの設定 ~Bable編~

f:id:At_sashimi_py:20190903031555p:plain
シンタックスハイライト
こんにちは!私が住んでいる州では銃乱射事件が多発しており、本気で引っ越したい今日この頃です。

ここアメリカでは、毎年9月の第一月曜日が Labor day ということで国民の祝日となっており、

Labor day weekend は三連休!Yeah!!

ということでどこにも行かずにコードを書いたり筋トレしたり大変有意義に過ごしております。

とりあえず三連休ということなので何か新しいことしたいなと。

そこで白羽の矢が立ったのが

ReactJS

reactjs.org


普段はPythonばかり触っていてJavascriptは触り始めて数ヶ月ちょい。

やればなんとかなるっしょ〜精神で、

とりあえずプロジェクトを作ってSublimeTextで開いてみたら。。

おやぁ。。?


f:id:At_sashimi_py:20190903023707p:plain
ハイライトぐちゃぐちゃ!

ところどころ美しくないぞ。。?


……。

うん!

これじゃあいけない!

まずこれハイライト整えよ!!


テスト勉強する前に部屋の掃除をするがごとくシンタックスハイライトを綺麗にすることにしました。

今回、インストールさせていただいたのはこちら

babel-sublime

github.com

Installation

READMEを読めば一瞬なのですが、あえて説明させていただくと

  1. Package Control から
    f:id:At_sashimi_py:20190903024821p:plain
    Package Control から
  2. Install Packageへ
    f:id:At_sashimi_py:20190903024952p:plain
    Install Package
  3. Bableを検索しEnterっターン!!
    f:id:At_sashimi_py:20190903025500p:plain
    Bableを検索
  4. Veiw -> Syntax -> Open all with current extension as... -> Babel -> JavaScript (Babel)
    f:id:At_sashimi_py:20190903025640p:plain
    Activate!
  5. ちゃんといい感じにハイライトされました!
    f:id:At_sashimi_py:20190903025813p:plain
    Highlighted!!

めでたしめでたし!










よし!なんか作ろ!!


それでは皆様の良いCoding Lifeを願っております!ではまた!

ありがとうございましたー!

【初心者必見】Git/GitHubでよく使うコマンドまとめ一覧

f:id:At_sashimi_py:20190817132031p:plain
リモートで新しいプロジェクトを始めよう

GitやらGithubってかなり便利な代物で慣れている人からすれば開発にはなくてはならない存在である一方、初学者や独学の方で実際にGithubとか使う機会がない人にはかなり敷居の高いイメージだと思います。

私も慣れるのに結構時間かかりましたし、いまだにコマンドが不安ですぐググります笑

なのでGitとGithubの基本をここにメモ!

対象者

Git/Githubはよく使うけど細かいコマンドが調べないと出てこない方。

環境

Mac
Gitのバージョンは

$ git --version
git version 2.16.1

Gitのきほん

ローカルリポジトリの作成(directory 指定なし)

$ git init

ローカルリポジトリの作成(directory 指定あり)

$ git init directory_name

branchの作成

$ git branch branch_name

branchの変更

$ git checkout branch_name

ステータスチェック

$ git status

変更を確認

$ git diff

全ての変更をStagingに追加

$ git add -A

個別に変更をStaging areaに追加

$ git add file_name

Staging areaに追加したファイルを全て元にもどす

$ git reset

Staging areaに追加したファイルを個別に元にもどす

$ git reset file_name

Staging areaに追加したファイルをメッセージとともにコミット

$ git commit -m "Initial Commit"

ログをチェック

$ git log

branch を master に マージ

$ git merge branch_name

マージされたbranchをチェック

$ git branch --merged

マージされたbranchの削除

$ git branch -d branch_name

マージされたbranchをリモートレポジトリからも削除

$ git push origin --delete branch name

設定されている全ての値を確認

$ git config --list

Githubのきほん

Githubで立ち上げたプロジェクトをローカルへ

$ git clone https://github.com/example/clone_test_exmaple.git

リモートレポジトリの情報を確認

$ git remote -v
origin	https://github.com/example/clone_test_exmaple.git (fetch)
origin	https://github.com/example/clone_test_exmaple.git (push)

リモートレポジトリのブランチを確認

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

他の人が加えたリモートレポジトリへの変更をPull

$ git pull origin master
From https://github.com/exmaple/clone_test_exmaple
 * branch            master     -> FETCH_HEAD
Already up to date.

自分のローカルの変更をリモートレポジトリへPush

$ git push origin master

branchをリモートレポジトリへPush

$ git push -u origin branch_name

ローカルの既存のレポジトリをリモートレポジトリに追加

$ git remote add origin https://github.com/example/clone_test_exmaple.git



と、基本を軽く一気に書き記しました。
とりあえずの早見表的に参考にしていただければと思います。


もしも、間違い、指摘等ございましたらコメントいただけると幸いです。

それでは、皆さんのより良いGitライフを祈っております!!

【Python自動化】アナリストチームのJIRA&CSV周りの仕事をPythonで自動化した話

f:id:At_sashimi_py:20190727145046p:plain
チームのアナリストの仕事自動化スクリプト

やはりスクリプト言語であるPythonを使っていると、色々なタスクの自動化の仕事が回ってきます。
過去のにも自動化のことに少し触れましたが、

atsashimipy.hatenablog.com

今回はもっと具体的な事例を交えながら書いていこうかと思います。

さっそく今回の案件です。
前提としてうちのチームはプロジェクト管理にJIRAを使っています。
www.atlassian.com

環境

MacBook Pro (macOS Mojave)
Python 2.7
なるべく標準ライブラリだけで済ませます。
Install はJIRAのみ。
*1


とりあえずマニュアルでちまちまやっていたら時間がいくらあっても足りないので、
Pythonさんの力を借りましょう。

1000弱のJIRAチケットのデータの入ったCSVの読み込み

何はともあれまずは csvモジュール をインポート

import csv

13.1. csv --- CSV ファイルの読み書き — Python 2.7.16 ドキュメント

with open(csv_input) as f:
    reader = csv.reader(f)

CSVファイルから特定のデータを持ったチケットデータを取得

今回のCSVファイルは一番最初のコラムにプロジェクトキーそして5番目にアナリストの欲するキーワード、そのキーワードが存在する時だけ、プロジェクトキー、とキーワードを取得したい。なのでこのように書きました。

with open(csv_input) as f:
    reader = csv.reader(f)
    csv_list = [[row[0], row[4]] for row in reader if row[4] != '']

こうすることで[プロジェクトキー,キーワード]のリストが返ってきます。
これはあとでForループで回します。

そのデータを元にJIRAチケットへのコメント+ラベルを追加

PythonでJIRAを扱う為、JIRAのパッケージをインストール。

pip install jira

1. Installation — jira-python 2.0.1.0rc3.dev22 documentation
ここでJIRAにログインかつアップデート。

from jira import JIRA
from jira.client import JIRA

# jira login
options = {'server': 'your Jira URL'}
usr = 'username'
pas = 'password'

jira = JIRA(options=options, basic_auth=(usr, pas))
# print("Login!!")

def update_JIRA(your_issue_key, your_keyword):
    ticket = jira.issue(your_issue_key)
    message = "your keyword is {0}".format(
        (your_keyword))
    jira.add_comment((your_issue_key), message)
    ticket.fields.labels.append('your_tag')
    ticket.update(fields={"labels": ticket.fields.labels})
    update_message = '{0}: {1}\n'.format((your_issue_key), (your_keyword))

    return update_message

Pythonに詳しくないアナリストの人たちが週一くらいの頻度で自分で実行できるようにユーザーフレンドリーに

raw_inputでインタラクティブにアナリストの人たちがCSVファイルをドラッグ&ドロップできるように(自分、優しい笑)

csv_input = raw_input(
    '>> Type your CSV file name or Drag and drop the CSV file here: ')
csv_input = csv_input.split('/')[-1].strip()
print('>> Working on ' + csv_input)

ログの設定

Logging HOWTO — Python 2.7.16 ドキュメント

import logging
logging_message = ''
logging.basicConfig(filename="JIRA_CSV_updated.log",
                    level=logging.INFO,
                    format='%(asctime)s: \n%(message)s')

ロギングレベルはINFO
filenameで設定した"JIRA_CSV_updated.log"が生成され、

logging.info(logging_message)

のたびにログメッセージが足されていきます。(便利)

最終形態

その後、デバッグやらなんやらし、アナリスト達の意見を取り入れつつまとめ、アナリストチームに納品しました。
ソースコード例はこちら

github.com


いやー最近気づいたのですが、書くコードがほぼ全て会社関連のもので全然Githubにあげるものがない。ある意味無自覚の社畜だなぁと。
なのでこれからは少しずつ載せていこうかなと。詳細は伏せて。

少しでもアウトプットしないとね!

というわけで長々かつダラダラと、にも関わらず最後駆け足になってしまいましたが、少しでもどこかの誰か、もしくは将来の自分の役に立てばというメンタリティで書かせていただきました。

お付き合いいただき、ありがとうございます!

それでは

皆さんの良きPythonライフを祈っております!

では!!

*1:Python3 をインストールしてないアナリストたちの環境に合わせてあります。

【Python/JavaScript比較】PythonディベロッパーがJavaScriptを始めてみた結果:List/Array編

f:id:At_sashimi_py:20190628092554p:plain
Webに特化したJavaScriptと学術分野に特化したPython

JavaScript始めました。

というのもPythonでWebAppなどを作っているとやっぱりどうしても避けては通れないというか
手を出したくなる魅力があるというか、むしろ知らないといけないのではというのが動機です。

さすがはWeb開発で大人気のJavaScript

便利で、とても優秀。
DOMでHTMLいじくれるのもとても快感。

Google Chrome Extension もJavaScriptが使えれば作れるので、欲しい機能があれば、さくっと作れるのも魅力的。
(作るのが楽しくて、車輪の再発明をしがち)

PythonJavaScript:似て異なるモノ

もともとはPython大好き人間のかつJavaScript初心者の私。
JavaScriptを書く時は、だいたい頭の中ででPython Scriptを書いて変換して書いております。

使われる分野は違えど、PythonJavaScriptも同じScript言語、個人的に文法も似ているものと認識しています。

ただ書き方がやや異なるので今回はその辺について備忘録的に書き残していこうと思います。(毎回調べるのもアレなので)

今回はPythonListJavaScriptArrayの書き方の比較を記していこうと思います。(そこはそうじゃなくてこっちの方が正しいよー!もしくはもっといい方法あるよー!というかたはコメントいただけると幸いです!)

対象読者

Pythonの知識はまぁまぁあるが、JavaScriptは初心者。

PythonのListとJavaScriptのArray

何はともあれ、List/Arrayの基本的なところから見ていきましょう。
Pythonでの基本的なListの書き方。

name_list = ['John', 'Mark', 'Jane']

次に、JavaScriptの基本的なArrayの書き方。

var nameArray = ['John', 'Mark', 'Jane' ];

まず何をするにしても、変数を

var

で宣言します。
で変数の書き方は「nameArray」のようにキャメルケース🐪🐫
そしてPythonのリストのように記述し、

最後にセミコロン”;” ! !

と、基本はそこまで深掘りせず、早速、PythonのListとJavaScriptのArrayを比較していきましょう!

List/Arrayへの要素の追加

【末尾】Python: append() と JavaScript: push()

何か新しい要素をList/Arrayの最後に付け加えたい時
Pythonであればappend()を使います。

#python
name_list = ['John', 'Mark', 'Jane']
name_list.append('Emma')
print(name_list)
# output
# [ 'John', 'Tim', 'Jane', 'Emma' ]

一方、JavaScriptの場合はpush()を代わりに使います。

//javascript
var nameArray = ['John', 'Mark', 'Jane' ];
nameArray.push('Emma');
console.log(nameArray);
// output
// [ 'John', 'Tim', 'Jane', 'Emma' ]
【先頭】Python: insert() と JavaScript: unshift()

新しい要素をList/Arrayの先頭にに付け加えたい時
Pythonでは末尾以外に要素を付け足す場合には、insert()を使ってあげる必要があります。

#python
name_list.insert(0, 'Kate')
print(name_list)
# output
# ['Kate',  'John', 'Tim', 'Jane', 'Emma' ]

一方、JavaScriptにはそれ用のunshift()が存在します!

//javascript
nameArray.unshift('Kate');
console.log(nameArray);
// output
// [ 'Kate', 'John', 'Tim', 'Jane', 'Emma' ]
【任意】Python: insert() と JavaScript: splice()

任意の箇所に要素を付け足したい場合
Pythonであれば、既出のinsert()の第一引数に挿入したい位置を指定します。

#python
name_list.insert(2,'Sam')
print(name_list)
# output
#['Kate', 'John', 'Sam', 'Tim', 'Jane', 'Emma']

そしてJavaScriptの場合はsplice()で、第一引数に挿入したい位置をPython同様指定します。第二引数には、削除する要素の数をしてすることができますが、今回は削除では無く挿入なので'0'を指定します。そして第三引数に追加したい要素を記入します。

//javascript
nameArray.splice(2,0,'Sam')
console.log(nameArray)
// output
//['Kate', 'John', 'Sam', 'Tim', 'Jane', 'Emma']

List/Arrayの要素の取得

PythonではよくListの中の要素を取り出して使ったり、Listの長さを取得したり、とListの情報を取得したい場合が多々あります。それはJavaScriptでも同様にありけり。です。

【任意】PythonJavaScriptほぼ同じ

これはPythonJavaScriptも同じですね。
List/Array名の後に"[0から始まる任意の位置]"

#python
print(name_list[1])
# output
#John
//javascript
console.log(nameArray[1]);
// output
//John
【List/Arrayの長さ】Python: len() とJavaScript: length
#python
print(len(name_list))
# output
#5
//javascript
console.log(nameArray.length);
// output
//5
【Slice】指定した位置から、複数の値をを取得

PythonのListにおけるSliceはList名の後に任意の範囲を[1:3]のように始点と終点のIndexを、コロンを挟む形で指定します。この際終点は含まれません。

#python
#[ 'Jane', 'John', 'Kate', 'Sam', 'Tim' ]
slice_1 = name_list[1:3]
slice_2 = name_list[2:]
print(slice_1)
print(slice_2)
# output
#['John', 'Kate']
#['Kate', 'Sam', 'Tim']

一方JavaScriptの場合はslice(始点,終点)で範囲を指定します。
Python同様、終点は範囲に含まれません。

//javascript
//[ 'Jane', 'John', 'Kate', 'Sam', 'Tim' ]
slice1 = nameArray.slice(1,3);
slice2 = nameArray.slice(2,);
console.log(slice1)
console.log(slice2)
// output
//[ 'John', 'Kate' ]
//[ 'Kate', 'Sam', 'Tim' ]

と、まぁこのくらい分かればなんとかなるかなArrayに関しては。個人的に。

とりあえずArrayはこのくらいにして、

今後また、PythonでいうIf構文やForループ、Function、ClassのJavaScriptバージョンをまとめていけたらなと思います(自分のためにも)。

それでは

皆さんの良きPython/JavaScriptライフを祈っております!

ありがとうございましたー!

【自動化への備忘録】Crontabで定期的にPythonスクリプトを自動で実行する方法と注意点!

f:id:At_sashimi_py:20190610134533p:plain
定期的に特定のスクリプトCrontabで走らせたい!!

ということがよくあるにも関わらず毎回調べてしまうのでここに記します。

そもそもCrontabとは?

crontab(クロンタブ、あるいはクローンタブ、クーロンタブとも)コマンドはUnixオペレーティングシステム (OS) において、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。

つまりLinuxMacを使っている人なら誰でも使える定期的に指定したコマンドを実行できるコマンド。

例えば

定期的なログの取得!

とか

ツイッターで定期的に何かを呟かせたい!

とか

定期的に特定のJiraチケットに対して何かしらのアクションを起こす!

とか

毎日のつまらなく退屈な単純作業は自動化!
atsashimipy.hatenablog.com


などなど、色々と自動化することでかなりの労働量を軽減できる優れもの。

恐怖の全削除コマンドに気を付けろ!

crontabコマンドには複数のオプションがあり、
その一つに全ての設定を削除という恐ろしいコマンド(後述)が存在する。
ガクガクガクガク (((( ;゚Д゚)))ガクガクブルブル
やっと自動化の設定をしたところで間違えて全削除、
会社で共有されているCrontab設定を全削除、
なんてことにならないよう。。。(経験者談)
皆さんはメモなりなんなりして、しっかりコマンドを頭に叩き込んでおきましょう!


オプション一覧
  • オプション -e: cronを設定する
crontab -e
  • オプション -l: 設定されているcronを表示する
crontab -l
  • オプション -r: 悪名高き魔のオプション全crontab設定を削除する基本的に使わないことをお勧めします。なので(今回は触れません) しかもよりによって”r”が”e”(cron設定)のすぐ隣!誘ってんのかっ!!
crontab -r
  • オプション -u: ユーザーを指定する。(今回は触れません)
crontab -u


と、まぁ前置きが長くなりましたが
ここから

Crontab設定方法!とちょっとVim
  • cronを設定する

下記のコマンドをTermnialに入力すると、デフォルトでVimエディタが開きます。

crontab -e

このVimが初心者泣かせのエディタで初めての方は高確率で自滅します。

そしてこのエディットモードから自力脱出もほぼ不可能でしょう。

なので初めての方は下記のコマンドだけ覚えてから帰ってください。

  • まずエディットモードになったら黙ってキーボードの”i”を叩く。これで'InsertMode'に切り替えます。これで普段通り(?)に入力できます。基本Vimでは一切マウスを使いません。
  • そして後述する、Crontabの設定を終えたら、キーボードの”Escape”ボタンを叩いて、InsertModeから脱出!
  • 最後に設定した内容をセーブ+Vimからの完全離脱の呪文”:wq” を入力して、Enter!!ターンっ!!

これで現実世界に帰ってこれるはずです。
もしVimのことをさらに知りたいVimmer希望の方がいらっしゃいましたらこちらのQiitaの記事がとても参考になります。
qiita.com
いつもお世話になっております。

  • 改めてましてcronを設定する

まずはこの図をご覧ください。

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of week (0 - 6)  (日曜日=0)
# │ │ │ │ │                                  
# │ │ │ │ │
# │ │ │ │ │
# * * * * *  実行されるコマンド

#(行頭の # マークはコメント行を示しています)


なんのことだかわかりませんね。

注目すべきは”* * * * *”の部分。
"*"それぞれが左から”分”、”時”、”日”、”月”、”曜日”を表しています。

(時は24時間表記、曜日は0から6まで日曜から土曜。ちなみに7は日曜になります)

その後ろに、実行したいコマンド、(今回はPythonスクリプト)をpathとともに明記します。

例えば

15 14 1 * * 実行されるコマンド

これは毎月1日の午後2時15分に指定されたコマンドを実行します。

他にも何分おきにや何日ごとにという場合は”*/”を使うことでそれが実現できます。

*/2 * * * * 実行されるコマンド

とすると2分ごとにコマンドが実行されます。

Crontab設定表記についてはこちらのサイトで実際に手を動かしながら試すことができます。
crontab.guru

Pythonスクリプトをcrontabで実行する際の注意点

普段コマンドラインpythonスクリプトを実行する際は

python /path/foo.py

としていましたが、
crontabではpython自体のフルパスが必要になります。
(私もこれで長いことハマりました…)

そこで"which"コマンドを使い…

$ which python3
/anaconda3/bin/python3

これでpythonのフルパスが判明しました!
つまりcrontabの設定で必要になるpythonコマンドは

/anaconda3/bin/python3 /path/foo.py


例としてこんなPythonスクリプトを用意しておきました。

import datetime
print(datetime.datetime.now())
print('2分ごとにつぶやくよ')

そして2分ごとにcrontab_test.txtというファイルに書き込むように設定します。

*/2 * * * * /anaconda3/bin/python3 hello_crontab.py >> crontab_test.txt

そしてこの記事を書いている間に…

f:id:At_sashimi_py:20190610085148p:plain
ちゃんと2分ごとに書き込みしていますね!

ここまでくればあとは簡単。
繰り返しになりますが、crontabの内容を表示したいときは、Listの”-l”

crontab -l

設定を削除したいときは、

crontab -r

は使わず

crontab -e

設定でマニュアルで消しましよう!


今回はこれで以上です!

それでは
皆さんの良きpython自動化ライフを祈っております!
ありがとうございましたー!

【Pandas最強説】Pythonで辞書のリストからCSV形式に変換する方法〜pandas編〜

pandas.io.json.json_normalize()メソッド pandas.json_normalize()メソッドを使って共通のkeyをもつ辞書のリストをデータフレームに変換、そして更にそこからto_csv()メソッドCSVファイルに変換する方法。

pandas.io.json.json_normalize()メソッドを使うと共通のキーをもつ辞書のリストをpandas.DataFrameに変換できる。


〜〜〜〜追記 2022-02-11〜〜〜〜〜
最近このメソッドを使ったら

FutureWarning: pandas.io.json.json_normalize is deprecated, use pandas.json_normalize instead.

と注意されてしまいました。
なのでpandas.json_normalize()を使っていきましょう!
pandas.pydata.org

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

to_csvメソッドcsvファイル書き出し、保存!
pandas.pydata.org


この方法だと、いちいちheaderを設定する必要なくpandasが共通のKeyをheaderに設定してくれ、直感的かつ簡単だったのでメモメモ。

そもそも、なぜCSV形式で求められるかというとやはりGoogle Sheetsへの移行が楽だから。CSV形式ならそのままGoogle SheetsにImport可能であり、集めたデータなどを他のチームのアナリストたちとシェアする時にとても便利。

(ちなみにCSVとはComma-separated valuesの略。直訳するとコンマで分けられた値。余談ですが、私が住む国にはCVSという巨大薬局チェーンがあり、毎回CSVCVSを混同しがちなので注意
(経験談:リアルに自分のResumeにCVSと記載して提出してしまった…!!泣)

さっそく本題に移ります。

今回は、JsonファイルやXMLファイルのデータをPythonで辞書のリストにまとめたと仮定して、辞書リストをpandasを使ってCSV形式に変換します。(PythonでのJsonXMLの扱いはまたまとめます。)

まず、辞書リストを用意します

dogs = [
    {'name': 'pochi', 'age': 3, 'gender': 'male', 'kind': 'shiba'},
    {'name': 'hanako', 'age': 12, 'gender': 'female', 'kind': 'golden retriever'},
    {'name': 'papi', 'age': 8, 'gender': 'male', 'kind': 'papillon'}
]

このワンちゃんデータを簡単にCSV形式でまとめたい!

そんな時にpandas!

とりあえずimport

import pandas as pd

まずはpandas.io.json.json_normalize()メソッドで、この辞書リストをデータフレーム型に変換。

df = pd.io.json.json_normalize(dogs)

print(df)

#output
#    age  gender              kind    name
# 0    3    male             shiba   pochi
# 1   12  female  golden retriever  hanako
# 2    8    male          papillon    papi

そしてto_csvメソッドcsvファイル書き出し、ファイル名を設定して保存!

df.to_csv('dogs.csv')

驚くほど簡単!!

f:id:At_sashimi_py:20190516144958p:plain
実行したpythonファイルと同じフォルダ内に保存されます
f:id:At_sashimi_py:20190516145345p:plain
headerもちゃんと設定してある!


というわけで、以上辞書リストをPandasを使って簡単にCSVファイルに変換する方法でした!

今日も頭のいい先人たちに感謝!


【Pandas最強説シリーズ】
atsashimipy.hatenablog.com

【非プログラマー必見】Pythonによる自動化のすゝめ

f:id:At_sashimi_py:20190610134206p:plain
いきなりですが私は無駄なことや、めんどくさい事、これやる意味ある?という事が好きではありません。

むしろ嫌いです。

ただ思うのは…

大体みんなそうじゃない?

むしろ好きな人がいたらその人はおそらくサイコパス

だから声を大にして言いたい。

そんな時のPythonだと!

いや、

Pythonさんだ!!


めんどくさい事はPythonさんにやっていただこう!

実際そんな本がありました。
www.oreilly.co.jp

Pythonにやらせよう」だなんてとんでもない!


そこは…

Pythonさんにやっていただこう!』

こうじゃないと…笑


でもまさにこれです。


ちなみにこの本、公式にタダで読めます(英語)
automatetheboringstuff.com

英語に自信のある方は是非!

コードは万国共通なので、そんなに英語に自信はないけど、節約したい方も是非!

実際何が自動化できるのか

面倒くさがり屋の私が実際Pythonさんに自動化してもらっている例

  • 情報収集
  • 集めた情報の処理
  • エクセル/Google Sheetsのデータ入力(CSV)
  • Jiraチケット作成
  • Jiraチケットにコメント
  • などなど

基本的に

あ!これ面倒くさっ!人間がやる意味ない!って思ったらすぐPythonさんにやってもらっています。

今日は軽く説明して、それぞれの詳細は後日…(この作業を自動化したい)

情報収集

情報が何より武器と言われるこのご時世。

ここを自動化して情報強者になりましょう。

方法はその都度変わりますが、インターネットからの情報を読み取る場合は

Pythonさんお得意のスクレイピングで欲しい情報を簡単に入手。

よく例で使われるのは

Yahoo!ファイナンスから株価の情報をスクレイピング。など

情報処理

情報はあってもそれらが乱雑で整理されていなければ、それは使い物になりません。

そんな混沌を正すのも可能。そう。Pythonさんなら。

エクセル/Google sheetsのデータ入力(CSV)

ありがたいことにそれらの情報をエクセルやGoogle Sheetsにまとめる作業までPythonさんはやってくれます。

CSVとはComma-separated valuesの略。つまり、コンマで区切られた情報。

Pythonさんが吐き出したこの形式のファイルは上記のエクセル/Google Sheetsでもそのまま使えます。

Jiraチケット作成/コメント

Jiraとは社内やチーム内でのプロジェクト管理ツール。

Jira APIを使えばいちいちそのツールからチマチマ入力しなくとも、

Pythonさんは自動でチケット作成や、コメントなどを代わりに自動でやってくれます。

Twitter bot

面倒くさがり屋で不定期更新の私と違い、

Pythonさんは定期的に色々呟いてくれています。


Pythonさん有能。

楽をしたければPythonを書け!!

これに尽きます。

『楽をしたい』

この気持ちが強ければ強いほどあなたはPythonに向いています!

そして何よりもPythonさんは初学者にお優しい!!

なので今すぐ始めましょう!