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: arg1
Deep 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