argparse 用于未知数量的参数和未知名称

cyb*_*oac 5 python command-line-interface argparse

我想获取传递给sys.argv具有格式的所有参数
someprogram.py --someparameter 23 -p 42 -anotherparam somevalue

结果我正在寻找一个包含所有变量的命名空间,已经解析。

据我了解,argparse 期望用户定义他期望的参数。

有什么办法可以用 argparse 做到这一点?谢谢 !

mem*_*tum 5

如果您知道参数将始终以格式给出,--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