argparse 基础
解析命令行参数
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 反馈 — 无需本地设置。