Pythonの実行時にコマンドライン引数を取得したい場合には、Pythonの標準モジュールであるArgumentParserを使用すると便利です。
ArgumentParserのシンプルな使用方法
import argparse parser = argparse.ArgumentParser() parser.add_argument('arg1') parser.add_argument('arg2') parser.add_argument('arg3') args = parser.parse_args() print(args.arg1, args.arg2, args.arg3)
python test.py -h usage: test.py [-h] arg1 arg2 arg3 positional arguments: arg1 arg2 arg3 optional arguments: -h, --help show this help message and exit
python test.py aaa bbb ccc ('aaa', 'bbb', 'ccc')
オプション引数を取りたい場合
import argparse parser = argparse.ArgumentParser() parser.add_argument('arg1') parser.add_argument('--arg2') parser.add_argument('-a', '--arg3', default="ccc") args = parser.parse_args() print(args.arg1, args.arg2, args.arg3)
python test.py -h usage: test.py [-h] [--arg2 ARG2] [-a ARG3] arg1 positional arguments: arg1 optional arguments: -h, --help show this help message and exit --arg2 ARG2 -a ARG3, --arg3 ARG3
python test.py aaa ('aaa', None, 'ccc')
python test.py aaa --arg2 bbb -a ddd ('aaa', 'bbb', 'ddd')
複数のコマンドライン引数を受け取る
import argparse parser = argparse.ArgumentParser() parser.add_argument('arg1', nargs='*') parser.add_argument('arg2') args = parser.parse_args() print(args.arg1, args.arg2)
python test.py -h usage: test.py [-h] [arg1 [arg1 ...]] arg2 positional arguments: arg1 arg2 optional arguments: -h, --help show this help message and exit
python test.py aaa bbb ccc ddd (['aaa', 'bbb', 'ccc'], 'ddd')
コマンドライン引数でファイル名を受け取る
import argparse parser = argparse.ArgumentParser() parser.add_argument('arg1', type=argparse.FileType('r')) args = parser.parse_args() print(args.arg1.read())
python test.py aaa usage: test.py [-h] arg1 test.py: error: argument arg1: can't open 'aaa': [Errno 2] No such file or directory: 'aaa'
python test.py test.txt [test.txtの中身]