Loading

argparse

argparse是一个用于命令行参数解析的标准库模块。它允许你在 Python 程序中轻松地定义和解析命令行参数。

安装

pip install argparse

示例1

import argparse

# 创建了一个命令行参数解析器,并可以提供一个描述性的文本,以便在用户请求帮助时显示
parser = argparse.ArgumentParser(description='描述你的程序')

# 定义了一个名为input_file的位置参数,用户在运行程序时必须提供这个参数,它代表输入文件的路径。
parser.add_argument('input_file', help='输入文件路径')

# 定义了一个名为--output_file的可选参数,用户可以根据需要提供这个参数来指定输出文件的路径。
parser.add_argument('--output_file', help='输出文件的路径')

# 这行代码解析命令行参数,并将结果存储在args对象中。可以通过args.input_file和args.output_file来访问用户提供的参数值。
args = parser.parse_args()

print(f"第一个参数:{args.input_file}")
if args.output_file:
    print(f"第二个参数:{args.output_file}")

运行结果

# 1.第一个参数必填
(.venv) PS D:\d_pycharm_program\argparse_test> python test.py 参数一                     
第一个参数:参数一

# 2.第二个参数可选
(.venv) PS D:\d_pycharm_program\argparse_test> python test.py 参数一 --output_file 参数二
第一个参数:参数一
第二个参数:参数二

# 3.查看可使用-h或--help
(.venv) PS D:\d_pycharm_program\argparse_test> python test.py --help
usage: test.py [-h] [--output_file OUTPUT_FILE] input_file

描述你的程序

positional arguments:
  input_file            输入文件路径

optional arguments:
  -h, --help            show this help message and exit
  --output_file OUTPUT_FILE
                        输出文件的路径

示例2 分组

分组使参数结构更清晰

import argparse

# 创建命令行参数解析器
parser = argparse.ArgumentParser(description='描述你的程序')

# 创建参数分组,使结构更加清晰
data_arg = parser.add_argument_group('Data')

# 向分组中添加参数
data_arg.add_argument('input_file', help='输入文件路径')
data_arg.add_argument('--output_file', help='输出文件的路径')

# 添加其他参数
# 加上action=store_true后,如果有该参数,config.verbose为True,否则为False
# 不加action=store_true后,如果有该参数,config.verbose为给该参数输入的值,否则为None
parser.add_argument('--verbose', action='store_true', help='别名')


# 解析已知参数
config, unparsed = parser.parse_known_args()

print(f"数据参数:{config}")
print(f"未解析的参数:{unparsed}")

print()

print(f"第一个参数(输入文件路径):{config.input_file}")
print(f"第二个参数(输出文件路径):{config.output_file}")
print(f"第三个参数(输出文件路径):{config.verbose}")

运行结果

(.venv) PS D:\d_pycharm_program\argparse_test> python test.py 参数一 --output_file 参数二
数据参数:Namespace(input_file='参数一', output_file='参数二', verbose=False)
未解析的参数:[]

第一个参数(输入文件路径):参数一
第二个参数(输出文件路径):参数二
第三个参数(输出文件路径):False

(.venv) PS D:\d_pycharm_program\argparse_test> python test.py 参数一 --output_file 参数二 --verbose 参数三
数据参数:Namespace(input_file='参数一', output_file='参数二', verbose=True)
未解析的参数:['参数三']

第一个参数(输入文件路径):参数一
第二个参数(输出文件路径):参数二
第三个参数(输出文件路径):True

(.venv) PS D:\d_pycharm_program\argparse_test> python test.py -h                         
usage: test.py [-h] [--output_file OUTPUT_FILE] [--verbose] input_file

描述你的程序

optional arguments:
  -h, --help            show this help message and exit
  --verbose             别名

Data:
  input_file            输入文件路径
  --output_file OUTPUT_FILE
                        输出文件的路径
posted @ 2024-11-28 08:40  一只大学生  阅读(79)  评论(0)    收藏  举报