博客
关于我
python argparse模块
阅读量:800 次
发布时间:2023-03-05

本文共 2799 字,大约阅读时间需要 9 分钟。

argparse 模块指南

argparse 是 Python 中用于解析命令行参数和选项的标准模块,取代了已过时的 optparse 模块。它提供了更加灵活和强大的命令行参数处理能力。

1. 基本使用步骤

  • 导入模块

    首先需要导入 argparse 模块。

    import argparse
  • 实例化解析器

    创建一个 ArgumentParser 实例,默认参数中包含一些基本选项,如 description 用于设置描述信息。

    parser = argparse.ArgumentParser(description='解析命令行参数')
  • 添加参数和选项

    使用 add_argument 方法逐个添加参数或选项。可以设置各类选项,包括位置参数、选项参数、文件参数等。

    parser.add_argument('echo', type=int)
  • 解析参数

    使用 parse_args 方法解析命令行参数,并获取结果。

    args = parser.parse_args()
  • 2. 添加位置参数

    位置参数是直接放在命令行语句中的参数,通常没有短选项或长选项。

    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] 

    3. 添加参数说明

    可以通过 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']

    4. 设置参数数据类型

    可以通过 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 

    5. 使用文件作为参数

    可以将文件路径作为参数传递,并读取文件内容。

    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

    6. 定义参数默认值

    可以通过 default 参数设置参数的默认值,解决必须传入参数的需求。

    def test05():    parser = argparse.ArgumentParser()    parser.add_argument('echo', default='默认值')    args = parser.parse_args()    print(args.echo)    print(args)

    示例运行结果

    $ python test05.py默认值

    7. 设置参数候选值

    可以使用 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 

    8. 定义选项参数

    可以通过 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

    9. 指定选项参数的变量名

    可以通过 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/

    你可能感兴趣的文章