本文共 2799 字,大约阅读时间需要 9 分钟。
argparse 是 Python 中用于解析命令行参数和选项的标准模块,取代了已过时的 optparse 模块。它提供了更加灵活和强大的命令行参数处理能力。
导入模块
首先需要导入 argparse 模块。import argparse
实例化解析器
创建一个ArgumentParser 实例,默认参数中包含一些基本选项,如 description 用于设置描述信息。parser = argparse.ArgumentParser(description='解析命令行参数')
添加参数和选项
使用add_argument 方法逐个添加参数或选项。可以设置各类选项,包括位置参数、选项参数、文件参数等。parser.add_argument('echo', type=int)解析参数
使用parse_args 方法解析命令行参数,并获取结果。args = parser.parse_args()
位置参数是直接放在命令行语句中的参数,通常没有短选项或长选项。
def test01(): parser = argparse.ArgumentParser(description='解析命令行参数') args = parser.parse_args() print(args) # 运行时需添加参数,如: # $ python test01.py arg_test
示例运行结果:
$ python test01.py arg_testusage: test01.py [-h] [--help]usage: test01.py [-h] [--help]
可以通过 help 参数为位置参数设置说明信息。
def test02(): parser = argparse.ArgumentParser() parser.add_argument('echo', help='直接打印这个参数的值') args = parser.parse_args() print(args.echo) print(args) 使用方法:
$ python test02.py arg_test
示例输出:
直接打印这个参数的值['arg_test']
可以通过 type 参数指定参数的数据类型。
def test03(): parser = argparse.ArgumentParser(description='解析命令行参数') parser.add_argument('echo', type=int) args = parser.parse_args() print(args.echo, type(args.echo)) print(args) 示例运行结果:
$ python test03.py 123123
可以将文件路径作为参数传递,并读取文件内容。
def test04(): parser = argparse.ArgumentParser() parser.add_argument('file', type=argparse.FileType('r')) args = parser.parse_args() for line in args.file: print(line.strip()) 示例运行结果:
$ python test04.py file.txt
可以通过 default 参数设置参数的默认值,解决必须传入参数的需求。
def test05(): parser = argparse.ArgumentParser() parser.add_argument('echo', default='默认值') args = parser.parse_args() print(args.echo) print(args) 示例运行结果:
$ python test05.py默认值
可以使用 choices 参数限制参数的候选值,并结合 default 设置默认值。
def test06(): parser = argparse.ArgumentParser(description='解析命令行参数') parser.add_argument('echo', choices=['a', 'b', 'c'], default='a') args = parser.parse_args() print(args.echo, type(args.echo)) print(args) 示例运行结果:
$ python test06.py aa
可以通过 add_argument 添加选项参数,通常使用 -v 和 --verbose 作为示例。
def test07(): parser = argparse.ArgumentParser(description='解析命令行参数') parser.add_argument('-v', '--verbose', help='增加详细信息') args = parser.parse_args() print(args.verbose) print(args) 示例运行结果:
$ python test07.py --verboseTrue
可以通过 dest 参数指定参数的变量名,适用于需要自定义变量名的情况。
def test08(): parser = argparse.ArgumentParser(description='解析命令行参数') parser.add_argument('-v', '--verbose', dest='ver', required=True) args = parser.parse_args() print(args.ver) print(args) 示例运行结果:
$ python test08.py --verbose --ver verbose_valueverbose_value
通过以上示例,可以了解如何在 Python 中使用 argparse 模块来解析命令行参数和选项。每个示例都提供了完整的代码和运行结果,方便快速学习和实践。
转载地址:http://cvafk.baihongyu.com/