如何使用optparse解析自定义字符串?

时间:2009-11-08 20:10:14

标签: python optparse

如何使用optparse而不是命令行参数解析自定义字符串?

我想解析使用raw_input()得到的字符串。 我怎样才能使用optparse?

2 个答案:

答案 0 :(得分:8)

optparse需要一个已经分解为shell样式的值列表(这是argv[1:])。要以字符串开头,请尝试以下方法:

parser = optparse.OptionParser()
# Set up your OptionParser

inp = raw_input("Enter some crap: ")

try: (options, args) = parser.parse_args(shlex.split(inp))
except:
    # Error handling.

parse_args的可选参数是您在转换后的字符串中替换的位置。

请注意,shlex.split可以例外,parse_args也可以。当您处理来自用户的输入时,明智的做法是期望两种情况。

答案 1 :(得分:4)

使用shlex module首先拆分输入。

>>> import shlex
>>> shlex.split(raw_input())
this is "a test" of shlex
['this', 'is', 'a test', 'of', 'shlex']