如何读取/处理命令行参数?

2024-03-29 10:20:34 发布

您现在位置:Python中文网/ 问答频道 /正文

3条回答

只是为了argparse四处布道,这对these来说更好。。本质上:

(从链接复制)

  • argparse模块可以处理位置 和可选参数,而 optparse只能处理可选的 参数

  • argparse不是教条 你的命令行界面 应该像-选项像-文件 或/文件受支持,如下所示 必需的选项。Optparse拒绝 支持这些功能,首选 纯度高于实用性

  • argparse产生更多 信息性使用信息,包括 命令行用法由 你的论点和帮助信息 位置和可选 论据。optparse模块 要求你自己写用法 字符串,无法显示 位置参数的帮助。

  • argparse支持 使用可变数量的 命令行参数,而optparse 要求 参数(例如1、2或3)是已知的 提前

  • argparse支持 发送到子命令,而 optparse需要设置 allow_interspersed_args然后 手动分派分析器

还有我个人最喜欢的:

  • argparse允许 操作参数到add_argument() 用simple指定 可调用,而optparse需要 黑客类属性,如 STORE_ACTIONSCHECK_METHODS获得 正确的参数检查

标准库中的规范解是argparsedocs):

下面是一个例子:

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支持(除其他外):

  • 任意顺序的多个选项。
  • 短期和长期选择。
  • 默认值。
  • 生成使用帮助消息。
import sys

print("\n".join(sys.argv))

^{}是一个列表,其中包含在命令行上传递给脚本的所有参数。

基本上

import sys
print(sys.argv[1:])

相关问题 更多 >