在日常的 Python命令行参数解析 工作中,我们经常需要编写可以接收用户输入参数的脚本。比如备份脚本需要指定源目录和目标目录,数据处理脚本需要指定输入文件路径等。这时候,argparse 模块就派上用场了!它是 Python 标准库中用于解析命令行参数和选项的强大工具。
在 argparse 出现之前,开发者通常使用 sys.argv 手动解析命令行参数,这种方式不仅繁琐,而且容易出错。而 argparse 提供了:
-h 或 --help)使用 argparse 只需三个基本步骤:
ArgumentParser 对象add_argument() 方法添加参数parse_args() 解析参数import argparse# 第一步:创建解析器parser = argparse.ArgumentParser(description='一个简单的问候程序')# 第二步:添加参数parser.add_argument('name', help='请输入你的名字')# 第三步:解析参数args = parser.parse_args()# 使用参数print(f'你好,{args.name}!') 保存为 hello.py,然后在终端运行:
python hello.py 张三
输出:你好,张三!
- 位置参数:必须按顺序提供,如上面的 name。
- 可选参数:以 - 或 -- 开头,可省略。
import argparseparser = argparse.ArgumentParser()parser.add_argument('--age', type=int, help='年龄') # 可选参数parser.add_argument('name') # 位置参数args = parser.parse_args()print(f'{args.name} 今年 {args.age} 岁。') 运行:python script.py 李四 --age 25
默认参数是字符串类型。你可以通过 type 指定其他类型:
parser.add_argument('--count', type=int, default=1)parser.add_argument('--rate', type=float) parser.add_argument('--output', default='result.txt') # 有默认值,非必需parser.add_argument('--config', required=True) # 必须提供 有时你希望用户只能选择 A 或 B,不能同时选。这时用互斥组:
group = parser.add_mutually_exclusive_group()group.add_argument('--verbose', action='store_true')group.add_argument('--quiet', action='store_true') 像 git commit、git push 这样的多命令工具,可以用 add_subparsers() 实现:
parser = argparse.ArgumentParser()subparsers = parser.add_subparsers(dest='command')# 添加子命令 'start'start_parser = subparsers.add_parser('start')start_parser.add_argument('--port', type=int, default=8000)# 添加子命令 'stop'stop_parser = subparsers.add_parser('stop')args = parser.parse_args()if args.command == 'start': print(f'启动服务,端口:{args.port}')elif args.command == 'stop': print('停止服务') 下面是一个结合多种功能的完整例子,展示如何用 argparse 构建实用的 命令行工具开发 脚本:
import argparseimport osdef main(): parser = argparse.ArgumentParser(description='文件处理工具') parser.add_argument('input_file', help='输入文件路径') parser.add_argument('-o', '--output', default='output.txt', help='输出文件路径') parser.add_argument('--uppercase', action='store_true', help='将内容转为大写') parser.add_argument('--lines', type=int, help='只处理前N行') args = parser.parse_args() if not os.path.exists(args.input_file): parser.error(f"输入文件不存在: {args.input_file}") with open(args.input_file, 'r', encoding='utf-8') as f: lines = f.readlines() if args.lines: lines = lines[:args.lines] content = ''.join(lines) if args.uppercase: content = content.upper() with open(args.output, 'w', encoding='utf-8') as f: f.write(content) print(f'处理完成!结果已保存至 {args.output}')if __name__ == '__main__': main() 这个脚本展示了 Python argparse教程 中的核心知识点:位置参数、可选参数、布尔开关、类型转换和错误处理。
argparse 是 Python 中构建专业级命令行应用的首选工具。通过本文的学习,你应该已经掌握了从基础到进阶的用法。记住:良好的命令行接口不仅能提升用户体验,还能让你的脚本更易于集成到自动化流程中。
现在,去尝试用 argparse 改造你手上的脚本吧!你会发现,原来命令行工具开发如此简单又强大。
本文由主机测评网于2025-12-02发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025121911.html