我可以使用 argparse
来读取不需要按特定顺序排列的命名命令行参数吗?我浏览了 文档,但其中大部分都侧重于根据提供的参数显示内容(例如 --h
)。
现在,我的脚本读取有序的、未命名的参数:
myscript.py foo-val bar-val
使用 sys.argv
:
foo = sys.argv[1]
bar = sys.argv[2]
但我想通过命名参数更改输入,使其与顺序无关:
myscript.py –bar=bar-val –foo=foo-val
原文由 amphibient 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以像这样使用 可选参数。
有了这个程序:
使其可执行:
然后,如果你调用它:
它打印:
或者,如果用户需要帮助,argparse 也会构建它:
2022-08-30:更新到 Python3 这个答案……