我想使用cmd将多个参数传递给python脚本。下面是我使用的代码。
import argparse
ap = argparse.ArgumentParser()
ap.add_argument('-n', '--names-list', nargs='+', default=[])
#item1 item2 item3 item4
args = vars(ap.parse_args())
a = args.names-list[0]
b= args.names-list[1]
c=args.names-list[2]
d=args.names-list[3]
print(a)
print(b)
print(c)
print(d)
当我执行代码时,我收到如下错误消息。
File "D:\script.py", line 7, in <module>
a = args.names-list[0]
AttributeError: 'dict' object has no attribute 'names'
因为我对此非常陌生,有人可以帮我解决问题吗?
答案 0 :(得分:1)
此行不正确。您无需调用vars()
。
args = vars(ap.parse_args())
相反,试试这个:
args = ap.parse_args()
此外,参数名称会自动从使用-
转换为使用_
。试试这个:a = args.names_list[0]
这是你的程序,有更正:
import argparse
ap = argparse.ArgumentParser()
ap.add_argument('-n', '--names-list', nargs='+', default=[])
#item1 item2 item3 item4
args = ap.parse_args()
a = args.names_list[0]
b= args.names_list[1]
c=args.names_list[2]
d=args.names_list[3]
print(a)
print(b)
print(c)
print(d)
结果如下:
$ python x.py -n one two three four
one
two
three
four