コマンドラインの引数を利用する方法は標準のライブラリだと以下の2つ?
-
sys
モジュールのsys.argv
で引数を参照する方法 -
argparse
モジュールで本格的に実装する方法
sys.argv
は、シンプルに引数を参照できるくらいかな
折角なのでちゃんとした実装をしてみるために、いくつかの参考ページを拾っておく
まずは公式ドキュメント「Python 3 ドキュメント」
一通り、argparse
を使う方法は、以下のページが良さそう
以下、パイプでファイルを引数で渡す処理のことが書かれていて内容把握したかったが、今ひとつ書いてあることがよくわからなかった...
具体的には、以下のような疑問
sys.stdin.isatty()
で標準入力があったかどうかを判定するとあるが... 標準入力で受け取ったデータは1つ目の引数に入るのか?
実行例もあるが、argparse.ArgumentParser().parse_args()
で標準入力の値を取得した際にそれを特定するキーは何になるのか...
とりあえず、「パイプでファイルを引数で渡す処理」は直近で必要なコマンドには必要ないから一時保留
以下のページは、サクッと使い始めたい時の一通りの書き方と、よくある使い方も書かれていて実用的な紹介記事
よくある使い方とは...
- 省略形式の引数の定義の方法と、プログラム内での参照方法
- 初期値の設定方法
- 引数で指定される値の型の指定方法
- 引数の設定をTrue/Falseとして扱う方法(仕様としては、型の指定方法に含まれる内容)
標準のモジュール以外にもコマンドプログラムを補完するようなモジュールがいくつかある模様
このほか、実際に実装を進める中で必要になったのが、以下
- ssh/scp の処理
- 別階層の自前ライブラリを取り込む方法
長くなりそうなので、とりあえず、基本的なコマンド作成の時の調査結果ということで、以上