sys.argv 可以处理可选参数吗?

新手上路,请多包涵
from sys import argv
script, lira_cbt, [eur_hedge] = argv

if eur_hedge == None:
    #Do x
else:
    #Do y

我希望它能够仅以 lira_cbt 作为参数(执行 x)或同时使用 lira_cbt 和 eur_hedge(执行 y)运行。这可以用 sys.argv 实现吗?

原文由 Felix 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 555
2 个回答

只需使用 sys.argv 的长度

if len(sys.argv) == 2:
  # do X
else:
  # do Y

原文由 varunl 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果这不仅仅是一次性脚本的一部分,请考虑使用 argparse http://docs.python.org/library/argparse.html

目前它会复杂得多,但它会帮助您记录程序接受的选项,并提供有用的错误消息,这与用户可能不理解的“太多值无法解压”不同。

原文由 Leovt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题