我原本是 C 程序员。我已经看到许多技巧和 “技巧” 来阅读许多不同的论点。
Python 程序员可以通过哪些方式做到这一点?
import sys
print("\n".join(sys.argv))
sys.argv 是一个列表,其中包含在命令行sys.argv
sys.argv[0]
是脚本名称。
基本上,
import sys
print(sys.argv[1:])
标准库中的规范解决方案是argparse
( docs ):
这是一个例子:
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
parser.add_argument("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
args = parser.parse_args()
argparse
支持(除其他外):
出于 这些原因,只是为了使argparse传福音更好.. 本质上:
(从链接复制)
argparse 模块可以处理位置和可选参数,而 optparse 仅可以处理可选参数
argparse 对于您的命令行界面应该是什么样的并不教条 - 支持像 - file 或 / file 这样的选项,以及必需的选项。 Optparse 拒绝支持这些功能,而是偏向于纯度而不是实用性
argparse 会产生更多有用的用法消息,包括根据您的参数确定的命令行用法,以及有关位置参数和可选参数的帮助消息。 optparse 模块需要您编写自己的用法字符串,并且无法显示位置参数的帮助。
argparse 支持消耗可变数量的命令行 args 的操作,而 optparse 要求事先知道确切数量的参数(例如 1、2 或 3)
argparse 支持分派到子命令的解析器,而 optparse 需要设置allow_interspersed_args
并手动执行解析器分派
和我个人最喜欢的:
add_argument()
,而 optparse 则需要破解类属性(如STORE_ACTIONS
或CHECK_METHODS
以进行正确的参数检查