Python:
コマンドライン引数の読み取り
How to:
import sys
# コマンドライン引数を表示する簡単な例
if __name__ == '__main__':
print(f'引数の数: {len(sys.argv)}')
print(f'引数のリスト: {str(sys.argv)}')
if len(sys.argv) > 1:
print(f'引数1: {sys.argv[1]}')これをexample.pyとして保存し、ターミナルでpython example.py arg1を実行すると、以下の出力が得られます。
引数の数: 2
引数のリスト: ['example.py', 'arg1']
引数1: arg1Deep Dive:
コマンドライン引数を読むやり方は古くからあります。Unixベースのシステムとそのツールやスクリプトが広く使われた70年代から、コマンドライン引数は使われてきました。Pythonではsysモジュールがよく使用されますが、より高機能なargparseライブラリもあります。
sys.argvはシンプルで使いやすいが、複雑な引数処理には向いていません。argparseは引数をパースし、ヘルプメッセージを自動生成し、エラーハンドリングも容易にします。さらに、引数をより明示的に定義でき、デフォルト値や型チェックもサポートしています。
例外処理や引数の検証を自力で行わなければならないsys.argvに比べ、argparseは強力で、プログラムの使い方がいっそう明確になります。
See Also:
- Python
sysモジュールのドキュメント: https://docs.python.org/3/library/sys.html - Python
argparseモジュールのドキュメント: https://docs.python.org/3/library/argparse.html