python3でコマンド作るのに必要なライブラリ
( ´_ゝ`)ノシ
yoshitiaです。
今年、本当記事書いてないなぁ。
題の通りpythonでコマンド作る話です。
python3前提。2は知らない。
OSはpyinstallerでwindowsかそれ以外で選べるっぽいので気にしない。
基本ライブラリ名と参考にした記事、良さげな実際に使った書き方を並べていく。
基本的pythonファイル1つでできる程度のもの。
pyinstaller
pythonスクリプトを動作に必要なもの一式詰め込んだexeファイルにしてくれるやつ。
os
組込みのライブラリ。
os.path.exists(opt[1])
みたいにディレクトリとかの存在確認で使ったりする。
sys
組込み。
sys.argv[1:]
はコマンドライン引数を配列で取る定形。
sys.exit
は途中でスクリプトの終了が必要になった時に使う。
getopt
コマンドライン引数からオプションを取るライブラリや関数の定番の名前。
opts, args = getopt.gnu_getopt(sys.argv[1:], "m:", ["image=", "temp="])
定番の書き方。
shutil
シェルでやれるようなファイル操作等ができる
shutil.which('aws')
上記の書き方を使うと他のコマンドの力借りる時に
そのコマンドが使用可能か確認できるので便利
subprocess
コマンドライン上でのコマンド実行をしたい時に使う。
res = subprocess.run(cmd_string, stdout=subprocess.PIPE)
こう書くとresに出力を格納できる。
json
最近のコマンドは割とjson必要だったりするみたい。
json_string = json.dumps(sample_dict)
from copy import deepcopy
deepcopyは変数の参照渡しで元の変数に変更が入った時、
参照渡しされた変数の中身まで変更されるのを防ぐために
値だけを渡すようにする時に使うもの
(私も理解が怪しい)
datetime
コマンドでファイルを出力する時にファイル名重複避けに
日付時刻を仕込むやつ。
now = datetime.datetime.now()
now.strftime('%Y%m%d_%H%M%S')
2行目はファイル名の文字列作る時に差し込む部分。