我可以选择阅读用户的输入列表。该列表可以具有随机长度。这是我的代码:
parser.add_argument('-at', '--addTests', metavar=('test_commands'), nargs='+')
使用' metavar'是一个给变量赋值的好方法,但是当没有修复nargs时它不能正常工作。
我从这一行得到的结果是:
-at test_command [test_command ...], --addTests test_command [test_command]
我希望结果只有" test_command"显示一次。
答案 0 :(得分:2)
你对
的含义感到困惑--addTests test_command [test_command]
您认为这意味着[test_command]
是一个参数列表。
请注意,[arg]
表示法用于可选参数。由于您已使用nargs='+'
,因此用户必须为-at/--addTests
选项提供 至少 一个参数,并且{{1}的任何其他参数都是可选的}}
因此,使用:
--addTests
调用脚本时:
--addTests test_command test_command2
将提供以下解析的args:
args = parser.parse_args()
然后您可以使用以下方式访问它们:
Namespace(addTests=['test_command', 'test_command2']
或者(而不是打印)你可以运行命令等。