如何读取/处理命令行参数?
我原本是C程序员。 我看到许多技巧和“黑客”来阅读许多不同的论点。
Python程序员可以做些什么?
有关
请注意,optparse在Python 2.7版本中已弃用:
http://docs.python.org/2/library/optparse.html。 argparse是替换:http://docs.python.org/2/library/argparse.html#module-argparse
标准库中有以下模块:
以下是使用文档中后者的示例:
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
optparse支持(除其他外):
import sys
print("n".join(sys.argv))
sys.argv
是一个包含在命令行sys.argv
脚本的所有参数的列表。
基本上,
import sys
print(sys.argv[1:])
只是为了argparse而传播福音,这是更好的原因。实质上:
(从链接复制)
argparse模块可以处理位置参数和可选参数,而optparse只能处理可选参数
argparse对于你的命令行界面应该是什么样子不是教条式的 - 像-file或/ file这样的选项被支持,就像所需的选项一样。 Optparse拒绝支持这些功能,宁愿纯度超过实用性
argparse会生成更多信息量的使用消息,包括从您的参数中确定的命令行使用消息,以及帮助位置参数和可选参数的消息。 optparse模块要求您编写自己的使用字符串,并且无法显示位置参数的帮助。
argparse支持使用可变数量的命令行参数的操作,而optparse要求事先知道参数的确切数量(例如1,2或3)
argparse支持调度到子命令的解析器,而optparse则需要设置allow_interspersed_args
并手动执行解析器调度
而我个人的最爱:
add_argument()
用简单的add_argument()
参数指定,而optparse则需要像STORE_ACTIONS
或CHECK_METHODS
这样的黑客类属性来获得适当的参数检查