概要
pythonプログラムでコマンドライン引数のリストを取得する2つの方法を確認しました。
実行環境
macOS Ventura 13.0
python 3.8.12
1. sysモジュールのargvを使用する方法
実行するプログラムは以下となります。
func_variable_args.py
import sys
def func_args(args):
print('args = ', args)
args = sys.argv
if len(args) > 1:
print('Argument is ', str(len(args)))
for i in range(1, len(args)):
print(args[i])
else:
print('Arguments is not good')
if __name__ == '__main__':
args = sys.argv
func_args(args)
プログラムを実行してみます。
$ python func_variable_args.py 2023-01 2023-02
args = ['func_variable_args.py', '2023-01', '2023-02']
Argument is 3
2023-01
2023-02
2. argparseモジュールを使用する方法
実行するプログラムは以下となります。
func_list_args.py
import argparse
def func_args(args):
print('args = ', args)
print('Argument is ', str(len(args)))
for i in range(0, len(args)):
print(args[i])
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='list引数の確認')
parser.add_argument('--alist', type=str, required=True, nargs="*", help='a list of str variables')
args = parser.parse_args()
func_args(args.alist)
プログラムを実行してみます。
$ python func_list_args.py --alist 2023-01 2023-02
args = ['2023-01', '2023-02']
Argument is 2
2023-01
2023-02
まとめ
ケースバイケースで使い分けていきたいと思います。