【问题标题】:Python command line argument defaultsPython 命令行参数默认值
【发布时间】:2016-01-26 13:25:03
【问题描述】:

我只是想知道是否有一种简单的方法可以使用 sys.argv 作为默认值来设置 python 命令行参数。例如;

sys.argv[2] = "defaultValue"

我知道在其他一些语言中,如果它是空白的,您可以执行以下操作;

var myVar = "someValue" | "";

我对 Python 还很陌生,但希望有一个简单的解决方案。在此先感谢 ;)

【问题讨论】:

  • 谢谢你,但是我正在为一个非常大的代码库做一个修补程序。这将允许我们使用这个工具,而不必经常传递不再需要的参数。因此我不能介绍任何模块。
  • sys.argv[2] 可能不存在(如果是len(sys.argv) < 2),那么您就无法赋值。
  • 您可以随意重新分配sys.argv 成员。但请注意,正如@furas 指出的那样,sys.argv[n] 可能不存在。不过,即使在这种情况下,您也可以随意附加它。
  • 我宁愿使用myVar = sys.argv[2] if len(sys.argv) > 2 else "defaultValue"

标签: python command-line command-line-arguments


【解决方案1】:

实现此目的的一种方法是:

if len(sys.argv) >= 3:
    myVar = sys.argv[2]
else:
    myVar = 'defaultValue'

您可能还想看看 optparse 或 click 之类的东西,它们可以更轻松地创建漂亮的 CLI。

【讨论】:

    【解决方案2】:

    您可以在参数列表中添加至少两个参数,然后将正确的值分配给argsv[2]:

    import sys
    sys.argv= sys.argv + ["" for x in range(2) ]
    sys.argv[2]="defaultValue"
    print sys.argv
    

    【讨论】:

    • 嗯,唯一的问题是它总是传递第一个参数。
    • 如果总有第一个参数,可以使用range(1)
    猜你喜欢
    • 2022-01-16
    • 2014-09-21
    • 2015-01-12
    • 2019-06-14
    • 1970-01-01
    • 2013-04-25
    • 2014-08-07
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多