【发布时间】:2021-11-09 04:54:58
【问题描述】:
我正在使用 argparse 将其他参数拉入我的脚本。
如果传递了一个参数,我可以从其他参数中获取键和值:
parser = argparse.ArgumentParser(description='My app.')
parser.add_argument('-n', '--project-name', required=False, default='test')
args, remaining_argv = parser.parse_known_args()
set_config(remaining_argv[0], remaining_argv[1]
但我希望能够使用动态列表设置键和值。我可以通过除以 2 来获得参数的数量,但我需要通过数组来设置键和值:
parser = argparse.ArgumentParser(description='My app.')
parser.add_argument('-n', '--project-name', required=False, default='test')
args, remaining_argv = parser.parse_known_args()
number_of_additional_arguments = int(len(remaining_args)/2)
for r in range(0,number_of_additional_arguments):
key = ??
value = ??
set_config(key, value)
如何动态设置键和值?
【问题讨论】:
-
成对是怎么写的?
myscript.py -n mytest foo 1 bar 2 baz 3,或者myscript.py -n mytest --foo=1 --bar=2 --baz=3,或者别的什么。remaining_argv是一个字符串列表。您如何解析该列表取决于您期望的输入。argparse没有修改sys.argv的这个未解析部分。