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の中身]