使用Argparse时,"AttributeError: 'Namespace' object has no attribute 'command'"不断显示在终端上



导入argparse(以及我需要的其他内容(后,我编写了以下代码:

parser = argparse.ArgumentParser()
(..some code with optional arguments...)
requiredArguments = parser.add_argument_group("Required arguments")
(..some code with required arguments...)
requiredArguments.add_argument("--extension", "-ext", help="set the extension", type=str)
args = parser.parse_args() 
if args.version:
print("blahblahblah")
elif args.example:
print("blahblahblah")
elif args.width:
screen_width = "%i" % args.width
elif args.height:
screen_height = "%i" % args.height
elif args.sequence:
sequence = "%i" % args.sequence
elif args.url:
url = "%s" % args.url
elif args.ext:
ext = "%s" % args.ext
else:
print("blahblahblah")
[Some additional code irrelevant to the case as it is related to screenshots]

在下面的代码中出现了问题:

number = 0
while number < args.sequence:
url = args.url+str(number)+args.ext

在我的终端上,我已经指定了所有必要的论点(或者至少我相信我已经指定(:

python script.py -k [keyword] -w [screen_width] -hg [screen_height] -s 10 -u "url" -ext "extension_to_the_url"

不管自变量的位置如何;url=args.url+str(数字(+args.ext"在几个部分中,使用和不使用括号,以及一个长的etcetera(以及尝试"nargs"(,错误是相同的:

AttributeError: 'Namespace' object has no attribute 'ext'

我使用"ext"参数的方式肯定有问题,因为在没有提供"ext"的早期版本的脚本中,Python根本没有抱怨。

我是Python的新手,我已经没有什么想法了。我读到有一个错误显示了这个错误,基本上这意味着提供的参数太少了?但这毫无意义,因为所有的参数都是通过命令行提供的。。。

有什么想法吗?

提前感谢!

添加dest='ext',类似于:

requiredArguments.add_argument("--extension", "-ext", action='store', dest='ext', help="set the extension", type=str)

和使用类似:

python stack_args_exp.py -ext 23

最新更新