【问题标题】:Python Optparse from Argument String来自参数字符串的 Python Optparse
【发布时间】:2010-12-22 05:28:12
【问题描述】:

通常可以简单地调用 optparse 的方法 parse_args 而不带任何参数。但是,如果需要提供与 sys.argv 不同的参数集,则可以将 if 传递给 parse_args

但是如果需要将字符串而不是列表传递给parse_args,该怎么办?

我真的需要一个这样的函数:

>>> argument_string = "-a arga -b \"argument b\" arg1 arg2"
>>> parse_arguments(argument_string)"
['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2']

因为

>>> argument_string.split(" ")
['-a', 'arga', '-b', '"argument', 'b"', 'arg1', 'arg2']

没有删减。 有什么想法吗?

【问题讨论】:

    标签: python command-line-arguments


    【解决方案1】:

    这就是 shlex 模块的用途(嗯,这是一件事……):

    >>> import shlex
    >>> argument_string = "-a arga -b \"argument b\" arg1 arg2"
    >>> l = shlex.split(argument_string)
    >>> l
    ['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2']
    

    【讨论】:

      【解决方案2】:

      为此使用shlex 模块:

      >>> import shlex
      >>> shlex.split("-a arga -b \"argument b\" arg1 arg2")
      ['-a', 'arga', '-b', 'argument b', 'arg1', 'arg2']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 2021-07-15
        • 1970-01-01
        • 2016-04-25
        相关资源
        最近更新 更多