コマンドライン引数の読み取り

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: