如何使用optparse而不是命令行参数解析自定义字符串?
我想解析使用raw_input()
得到的字符串。
我怎样才能使用optparse?
答案 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']