如何使用optparse解析自定义字符串?
如何使用optparse解析自定义字符串,而不是命令行参数?
我想解析一个通过使用raw_input()
获取的字符串。那我该如何用optparse来实现呢?
2 个回答
4
首先使用 shlex模块 来分割输入内容。
>>> import shlex
>>> shlex.split(raw_input())
this is "a test" of shlex
['this', 'is', 'a test', 'of', 'shlex']
9
optparse
这个工具需要一串像在命令行中那样分开的值(这就是 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
都可能会出现错误,特别是当你处理用户输入的时候,最好做好应对这两种情况的准备。