什么是 最简单的 , tersest ,最 灵活的 方法或库解析Python的命令行参数?
该答案表明optparse哪种方法适用于较旧的Python版本。对于Python 2.7及更高版本,请argparse替换optparse。)。
optparse
argparse
正如其他人指出的那样,您最好使用optparse而不是getopt。getopt几乎是标准getopt(3)C库函数的一对一映射,并且使用起来不是很容易。
optparse有点冗长,但结构更好,以后也更容易扩展。
这是向解析器添加选项的典型行:
parser.add_option('-q', '--query', action="store", dest="query", help="query string", default="spam")
这几乎可以说明一切。在处理时,它将接受-q或– query作为选项,将参数存储在名为query的属性中,如果未指定则具有默认值。这也是自记录的,您可以在该选项的附近声明help参数(与-h /-help一起使用时将使用该参数)。
通常,您使用以下方法解析参数:
options, args = parser.parse_args()
默认情况下,这将解析传递给脚本的标准参数(sys.argv [1:])
然后,将options.query设置为您传递给脚本的值。
您只需执行以下操作即可创建解析器
parser = optparse.OptionParser()
这些都是您需要的所有基础知识。这是显示此内容的完整Python脚本:
import optparse parser = optparse.OptionParser() parser.add_option('-q', '--query', action="store", dest="query", help="query string", default="spam") options, args = parser.parse_args() print 'Query string:', options.query
5行Python,向您展示基础知识。
将其保存在sample.py中,然后运行一次
python sample.py
然后一次
python sample.py --query myquery
除此之外,您还会发现optparse非常容易扩展。在我的一个项目中,我创建了一个Command类,它使您可以轻松地将子命令嵌套在命令树中。它大量使用optparse将命令链接在一起。这不是我可以轻松解释的内容,但是可以在我的存储库中随意浏览主类以及使用它的类和选项解析器