我正在尝试调试使用命令行选项的脚本,但是它们可以是一个或多个数字。例如
$ test.py -c 1 2 3
或
$ test.py -c 5
通过Pycharm调试时,可以在脚本参数窗口中以某种方式将此选项设置为“一个或多个”选项吗?还是必须更改配置以测试每个选项? 谢谢:)
答案 0 :(得分:0)
不确定这是否正是您的意思,但是如果您在某些参数周围用引号指定“参数”字段,则它们将被视为一个,例如:
# Parameter field in PyCharm: -c "1 2" -f filename.txt
>>> sys.argv[1:]
['-c', '1 2', '-f', 'filename.txt'] # 1 and 2 together in the same string
但是请注意,即使您将ArgumentParser
或nargs='+'
传递给nargs='*'
,add_argument()
也会期望所有参数。因此,如果您使用ArgumentParser
类,则可能不想使用引号:
# Parameter field in PyCharm: -c 1 2 -f filename
>>> sys.argv[1:]
['-c', '1', '2', '-f', 'filename.txt']
或多或少,ArgumentParser
类将对nargs='+'
或nargs='*'
进行以下操作:
-c
),它将使用后面的所有参数,直到到达它可以识别的另一个关键字(例如-f
)或该关键字的末尾。列表-c
)即使您没有使用ArgumentParser
类,也有自己的解析代码,我还是建议您采用类似的解析策略。对于脚本用户而言,它可能更直观,再加上您以后无需在某些时候手动拆分参数(例如'1 2'.split()
)。