python - 检查是否设置了 argparse 可选参数

标签 python argparse

我想检查用户是否设置了可选的 argparse 参数。

我可以使用 isset 安全地检查吗?

类似这样的:

if(isset(args.myArg)):
    #do something
else:
    #do something else

这对于 float/int/string 类型的参数是否同样有效?

我可以设置一个默认参数并检查它(例如,设置 myArg = -1,或“”为字符串,或“NOT_SET”)。但是,我最终要使用的值仅在脚本的后面计算。因此,我会将其默认设置为 -1,然后稍后将其更新为其他内容。与简单地检查值是否由用户设置相比,这似乎有点笨拙。

最佳答案

我认为如果未提供可选参数(用 -- 指定),它们将被初始化为 None。所以你可以用 is not None 进行测试。试试下面的例子:

import argparse

def main():
    parser = argparse.ArgumentParser(description="My Script")
    parser.add_argument("--myArg")
    args, leftovers = parser.parse_known_args()

    if args.myArg is not None:
        print "myArg has been set (value is %s)" % args.myArg

关于python - 检查是否设置了 argparse 可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487767/

相关文章:

python - 无法使用 Django manage.py 创建 super 用户

python - Argparse:如何处理可变数量的参数(nargs ='*')

python - argparse - 使用特定参数重现 "--help"参数的行为

python - "Caching"字符串 : why has no effect?

python - 在 Pandas 中,如何在没有 for 循环的情况下用不超过 4 行的最后一个非零值替换所有零值?

python - 使用 Python ctypes 运行 C dll 函数时出现问题(未知大小的数组输出)

python - 如何在 matplotlib 中获取轴的主要刻度线的长度?

python - 类型错误 : __init__() got an unexpected keyword argument 'type' (argparse issue? )

Python Argparse 子解析器

python - 使用 argparse 获取包含 "or ' 的输入