cyb*_*oac 5 python command-line-interface argparse
我想获取传递给sys.argv具有格式的所有参数
someprogram.py --someparameter 23 -p 42 -anotherparam somevalue。
结果我正在寻找一个包含所有变量的命名空间,已经解析。
据我了解,argparse 期望用户定义他期望的参数。
有什么办法可以用 argparse 做到这一点?谢谢 !
如果您知道参数将始终以格式给出,--name value或者-name value您可以轻松完成
class ArgHolder(object):
pass
name = None
for x in sys.argv[1:]:
if name:
setattr(ArgHolder, curname, x)
name = None
elif x.startswith('-'):
name = x.lstrip('-')
Run Code Online (Sandbox Code Playgroud)
现在,您将收集ArgHolder作为命名空间的类中的所有参数。您还可以在一个实例中收集值ArgHolder