我正在编写一个应用程序,它接受任意命令行参数,然后将它们传递到python函数:
$ myscript.py --arg1=1 --arg2=foobar --arg1=4
然后在myscript.py中:
import sys
argsdict = some_function(sys.argv)
其中argsdict
如下所示:
{'arg1': ['1', '4'], 'arg2': 'foobar'}
我肯定某个地方有一个图书馆能做到这一点,但我什么也找不到。
编辑:argparse/getopt/optparse不是我要找的。这些库用于定义每个调用都相同的接口。我需要能够处理任意的论点。
除非,argparse/optparse/getopt具有执行此操作的功能。。。
下面是一个使用
argparse
的示例,尽管这是一个扩展。我不认为这是一个完整的解决方案,而是一个好的开始。…我是否可以问一下你为什么要重写(一堆)轮子,当你有:
是吗?
编辑:
在回复您的编辑时,optparse/argparse(后一个仅在>;=2.7中可用)具有足够的灵活性,可以扩展以满足您的需要,同时保持一致的接口(例如,用户希望能够同时使用
--arg=value
和--arg value
、-a value
和-avalue
等。。使用预先存在的库,您不必担心支持所有这些语法等)。你可以用这样的东西:
myscript.py
结果:
注:该值将始终是一个列表,但我认为这更为一致。如果你真的想把最终的字典
然后你就可以跑了
之后。
相关问题 更多 >
编程相关推荐