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

1 投票
2 回答
2287 浏览
提问于 2025-04-15 15:47

如何使用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.splitparse_args 都可能会出现错误,特别是当你处理用户输入的时候,最好做好应对这两种情况的准备。

撰写回答