2024-04-29 05:58:00 发布
网友
我正在为我的一个项目编写一个shell,它通过设计解析如下命令:
命令名ARG1=“Long Value”ARG2=123ARG3=me@me.com在
我的问题是Python的命令行解析库(getopt和optparse)迫使我在参数前面使用“-”或“-”。这种行为不符合我的要求。在
有什么办法解决这个问题吗?有没有现成的图书馆?在
尝试跟随“Standards for Command Line Interfaces”
将参数(如Thomas建议的)转换为OptionParser格式。在
parser.parse_args(["--"+p if "=" in p else p for p in sys.argv[1:]])
如果命令行参数不在系统argv或者类似的列表,但是在一个字符串中使用shlex.split()。在
shlex.split()
你可以用shlex.分离(),它可以处理引用的值,并且可以很容易地用一个非常简单的正则表达式解析它。或者,您可以只使用正则表达式进行拆分和解析。或者简单地使用split()。在
args = {} for arg in shlex.split(cmdln_args): key, value = arg.split('=', 1) args[key] = value
Ironforggy shlex答案的小Python变体:
args = dict( arg.split('=', 1) for arg in shlex.split(cmdln_args) )
哦。。。-已更正。在
谢谢,J.F.塞巴斯蒂安 (必须记住那些单参数生成器表达式)。在
尝试跟随“Standards for Command Line Interfaces”
将参数(如Thomas建议的)转换为OptionParser格式。在
如果命令行参数不在系统argv或者类似的列表,但是在一个字符串中使用
^{pr2}$shlex.split()
。在你可以用shlex.分离(),它可以处理引用的值,并且可以很容易地用一个非常简单的正则表达式解析它。或者,您可以只使用正则表达式进行拆分和解析。或者简单地使用split()。在
Ironforggy shlex答案的小Python变体:
哦。。。-已更正。在
谢谢,J.F.塞巴斯蒂安 (必须记住那些单参数生成器表达式)。在
相关问题 更多 >
编程相关推荐