argparse是Python标准库中用于解析命令行参数的模块,它使得编写用户友好的命令行接口变得简单。下面我将详细介绍argparse的主要用法。
基本用法
1. 创建解析器
python
import argparse parser = argparse.ArgumentParser(description='这是一个示例程序')
description参数用于简要描述程序的功能,当用户使用-h或--help时会显示。
2. 添加参数
位置参数
python
parser.add_argument("filename", help="要处理的文件名")
可选参数
python
parser.add_argument("-v", "--verbose", help="显示详细信息", action="store_true")
3. 解析参数
python
args = parser.parse_args()
参数类型详解
1. 基本参数类型
python
parser.add_argument("--count", type=int, help="数量")
parser.add_argument("--price", type=float, help="价格")
parser.add_argument("--name", type=str, help="名称")
2. 布尔参数
python
parser.add_argument("--enable", action="store_true", help="启用功能")
parser.add_argument("--disable", action="store_false", help="禁用功能")
3. 选择参数
python
parser.add_argument("--color", choices=["red", "green", "blue"], help="颜色选择")
4. 列表参数
python
parser.add_argument("--numbers", nargs="+", type=int, help="数字列表")
高级用法
1. 默认值和必选参数
python
parser.add_argument("--level", type=int, default=1, help="级别(默认:1)")
parser.add_argument("--required-arg", required=True, help="必选参数")
2. 互斥参数
python
group = parser.add_mutually_exclusive_group()
group.add_argument("--fast", action="store_true", help="快速模式")
group.add_argument("--slow", action="store_true", help="慢速模式")
3. 子命令
python
subparsers = parser.add_subparsers(dest="command", help="子命令")
# 创建子命令'init'的解析器
parser_init = subparsers.add_parser("init", help="初始化")
parser_init.add_argument("--name", required=True, help="项目名称")
# 创建子命令'update'的解析器
parser_update = subparsers.add_parser("update", help="更新")
parser_update.add_argument("--force", action="store_true", help="强制更新")
完整示例
python
import argparse
def main():
# 创建解析器
parser = argparse.ArgumentParser(description='这是一个文件处理程序')
# 添加参数
parser.add_argument("filename", help="要处理的文件名")
parser.add_argument("-v", "--verbose", action="store_true", help="显示详细信息")
parser.add_argument("--count", type=int, default=1, help="重复次数(默认:1)")
parser.add_argument("--output", help="输出文件名")
parser.add_argument("--mode", choices=["read", "write", "append"], default="read", help="操作模式")
# 解析参数
args = parser.parse_args()
# 使用参数
print(f"处理文件: {args.filename}")
if args.verbose:
print("详细模式已启用")
for i in range(args.count):
print(f"处理中... ({i+1}/{args.count})")
if args.output:
print(f"结果将输出到: {args.output}")
print(f"操作模式: {args.mode}")
if __name__ == "__main__":
main()
使用帮助
运行程序时添加-h或--help参数可以查看自动生成的帮助信息:
text
$ python script.py --help
usage: script.py [-h] [-v] [--count COUNT] [--output OUTPUT]
[--mode {read,write,append}]
filename
这是一个文件处理程序
positional arguments:
filename 要处理的文件名
optional arguments:
-h, --help show this help message and exit
-v, --verbose 显示详细信息
--count COUNT 重复次数(默认:1)
--output OUTPUT 输出文件名
--mode {read,write,append}
操作模式
argparse模块功能强大且灵活,可以满足大多数命令行参数解析的需求。
8211

被折叠的 条评论
为什么被折叠?



