Python Academy · 课时

argparse 基础

解析命令行参数

第 1 / 4 课13 个步骤

argparse 基础 是 CoddyKit 上的免费 Python Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。

为什么使用 argparse?

argparse模块(标准库)用于构建友好的命令行界面。它可以解析参数、验证类型,并自动生成帮助文本。

import argparse

parser = argparse.ArgumentParser(description='A demo tool')
print(type(parser).__name__)

创建解析器

首先构建一个 ArgumentParser。description的内容会显示在自动生成的帮助信息中。

import argparse

parser = argparse.ArgumentParser(description='Greet a user')
print('parser ready')

位置参数

add_argument('name')定义了一个必需的位置参数。这里我们将一个列表传给 parse_args,这样无需真实的命令行也能运行。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('name')
args = parser.parse_args(['Alice'])
print('Hello,', args.name)

可选参数

以 --开头的名称表示可选标志。请为用户省略它们时的情况提供一个 default值。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--greeting', default='Hi')
args = parser.parse_args(['--greeting', 'Hey'])
print(args.greeting)
print(parser.parse_args([]).greeting)

带类型的参数

使用 type=int(或其他类型),让 argparse 转换并验证值。无效输入会产生清晰的错误信息。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--count', type=int, default=1)
args = parser.parse_args(['--count', '5'])
print(args.count * 2)

布尔标志

action='store_true'会创建一个默认值为 False、出现时值为 True 的标志,非常适合 --verbose这样的开关。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true')
print(parser.parse_args(['--verbose']).verbose)
print(parser.parse_args([]).verbose)

短名称和长名称

为参数同时提供短名称和长名称,例如 -n和 --name。两者会设置同一个属性。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-n', '--name', default='world')
print(parser.parse_args(['-n', 'Sam']).name)

选项值限制

使用 choices限制允许的值。argparse 会拒绝列表之外的任何值。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--mode', choices=['fast', 'slow'], default='fast')
print(parser.parse_args(['--mode', 'slow']).mode)

使用 nargs 接收多个值

nargs='+'会将一个或多个值收集到列表中,非常适合一次接受多个输入。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='+')
args = parser.parse_args(['a.txt', 'b.txt', 'c.txt'])
print(args.files)

必需的可选参数与帮助信息

添加 required=True可以强制要求提供可选标志,添加 help=可以在生成的用法界面中说明它的作用。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--id', required=True, type=int, help='record id')
args = parser.parse_args(['--id', '7'])
print('id is', args.id)

一个完整的小工具

将这些内容组合起来:位置输入、带类型的选项和一个标志,就构成了一个小型但真实的 CLI。

import argparse

parser = argparse.ArgumentParser(description='Repeat a message')
parser.add_argument('message')
parser.add_argument('--times', type=int, default=1)
parser.add_argument('--shout', action='store_true')
args = parser.parse_args(['hello', '--times', '2', '--shout'])
text = args.message.upper() if args.shout else args.message
for _ in range(args.times):
    print(text)

快速检查

测试您对 argparse 的理解。

回顾

您学会了 argparse 的基础知识:

  • 使用 ArgumentParser处理位置参数和 --optional参数。
  • 使用 type、default、choices和 required验证输入。
  • 使用 action='store_true'处理标志,使用 nargs处理列表。
  • 帮助文本可以自动生成。

下一步:子命令和更丰富的选项处理。

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
76
课程
320

常见问题解答

「argparse 基础」课时是免费的吗?

是的 — 「argparse 基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。

「argparse 基础」这节课中我会学到什么?

解析命令行参数 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Python Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「argparse 基础」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Python Academy 课中编写并运行代码吗?

能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. argparse 基础
  2. 子命令与选项
  3. Click 库
  4. 丰富的终端输出
← 返回 Python Academy