使用Python进行定制的命令行解析

2024-04-29 05:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的一个项目编写一个shell,它通过设计解析如下命令:

命令名ARG1=“Long Value”ARG2=123ARG3=me@me.com在

我的问题是Python的命令行解析库(getopt和optparse)迫使我在参数前面使用“-”或“-”。这种行为不符合我的要求。在

有什么办法解决这个问题吗?有没有现成的图书馆?在


Tags: 项目命令行命令com参数图书馆valueshell
3条回答
  1. 尝试跟随“Standards for Command Line Interfaces

  2. 将参数(如Thomas建议的)转换为OptionParser格式。在

    parser.parse_args(["--"+p if "=" in p else p for p in sys.argv[1:]])
    

如果命令行参数不在系统argv或者类似的列表,但是在一个字符串中使用shlex.split()。在

^{pr2}$

你可以用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.塞巴斯蒂安 (必须记住那些单参数生成器表达式)。在

相关问题 更多 >