python3でコマンド作るのに必要なライブラリ

( ´_ゝ`)ノシ

yoshitiaです。

今年、本当記事書いてないなぁ。

 

題の通りpythonでコマンド作る話です。

python3前提。2は知らない。

OSはpyinstallerでwindowsかそれ以外で選べるっぽいので気にしない。

基本ライブラリ名と参考にした記事、良さげな実際に使った書き方を並べていく。

基本的pythonファイル1つでできる程度のもの。

 

pyinstaller

pythonスクリプトを動作に必要なもの一式詰め込んだexeファイルにしてくれるやつ。

kazuhira-r.hatenablog.com

 

os

組込みのライブラリ。

os.path.exists(opt[1])

みたいにディレクトリとかの存在確認で使ったりする。

 

sys

組込み。

sys.argv[1:]

コマンドライン引数を配列で取る定形。

sys.exit

は途中でスクリプトの終了が必要になった時に使う。

 

getopt

pythonに限らずいろんなプログラミング言語

コマンドライン引数からオプションを取るライブラリや関数の定番の名前。

szarny.hatenablog.com

opts, args = getopt.gnu_getopt(sys.argv[1:], "m:", ["image=", "temp="])

定番の書き方。

 

shutil

シェルでやれるようなファイル操作等ができる

qiita.com

shutil.which('aws')

上記の書き方を使うと他のコマンドの力借りる時に

そのコマンドが使用可能か確認できるので便利

 

subprocess

コマンドライン上でのコマンド実行をしたい時に使う。

maku77.github.io

res = subprocess.run(cmd_string, stdout=subprocess.PIPE)

こう書くとresに出力を格納できる。

 

json

最近のコマンドは割とjson必要だったりするみたい。

json_string = json.dumps(sample_dict)

上記の書き方でpython連想配列json変換可能。

 

from copy import deepcopy

deepcopyは変数の参照渡しで元の変数に変更が入った時、

参照渡しされた変数の中身まで変更されるのを防ぐために

値だけを渡すようにする時に使うもの

(私も理解が怪しい)

 

datetime

コマンドでファイルを出力する時にファイル名重複避けに

日付時刻を仕込むやつ。

now = datetime.datetime.now()

now.strftime('%Y%m%d_%H%M%S')

2行目はファイル名の文字列作る時に差し込む部分。