Mos*_*she 7 python shell command-line parsing arguments
我正在为我的一个项目编写一个shell,它通过设计解析看起来像这样的命令:
COMMAND_NAME ARG1 ="长值"ARG2 = 123 ARG3=me@me.com
我的问题是Python的命令行解析库(getopt和optparse)迫使我在参数前面使用' - '或' - '.此行为与我的要求不符.
任何想法如何解决?任何现有的库?
iro*_*ggy 10
您可以使用shlex.split()将它们拆分,它可以处理您拥有的引用值,并且可以使用非常简单的正则表达式轻松解析它.或者,您可以使用正则表达式进行拆分和解析.或者只使用split().
args = {}
for arg in shlex.split(cmdln_args):
key, value = arg.split('=', 1)
args[key] = value
Run Code Online (Sandbox Code Playgroud)
尝试遵循" 命令行界面标准 "
将您的参数(如Thomas建议的)转换为OptionParser格式.
parser.parse_args(["--"+p if "=" in p else p for p in sys.argv[1:]])
Run Code Online (Sandbox Code Playgroud)如果命令行参数不在sys.argv或类似的列表中,而是在字符串中,那么(如ironfroggy建议的那样)使用shlex.split()
.
parser.parse_args(["--"+p if "=" in p else p for p in shlex.split(argsline)])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4683 次 |
最近记录: |