主要部分
argparse
模块用于在 Python 程序中处理命令行参数。
import argparse
# 创建一个属于argparse.ArgumentParser中的对象parser(也就是可以访问这个ArgumentParser函数)
parser = argparse.ArgumentParser(description='这是一个示例程序,用于演示 argparse 的用法')
#通过parser.add_argument添加参数
# 添加一个名为 '--num' 的【可选参数】,类型为整数,默认值为 0,并提供帮助信息
parser.add_argument('--num', type=int, default=0, help='一个整数参数')
# 添加一个名为 'name' 的【位置参数】,并提供帮助信息
parser.add_argument('name', help='您的名字')
# 解析命令行参数
args = parser.parse_args()
# 打印解析后的参数
print(f'您输入的名字是: {args.name}')
print(f'您输入的数字是: {args.num}')
-
使用
parser.parse_args
方法来解析命令行中输入的参数,并将结果存储在args
对象中。 -
最后,可以通过
args.name
和args.num
来访问解析得到的参数值,并进行后续的处理
假设输入
python example.py Alice --num 5
程序将输出:
您输入的名字是: Alice
您输入的数字是: 5
关于添加参数的补充
parser.add_argument('--cpu', dest='force_cpu', action='store_true', default=False, help='Force code to run in CPU mode')
dest='force_cpu'
这个参数的作用是
当在命令行中输入了 --cpu
这个参数时,程序解析这个输入后,不会把这个参数的值存储在名为 cpu
的变量中,而是会把它存储在名为 force_cpu
的变量中
比如说,如果没有 dest='force_cpu'
,那么要获取这个参数的值,您可能会使用 args.cpu
。但由于有了 dest='force_cpu'
,您就需要使用 args.force_cpu
来获取这个参数的值。
解释位置参数和可选参数:
【位置参数】(必须输入)
指的是在命令行中按照固定的顺序输入的参数,不需要使用特定的名称或标志来标识。
在 argparse
中添加位置参数时,不需要在参数名称前添加 --
或 -
eg:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name', help='您的名字')
args = parser.parse_args()
print(args.name)
在命令行运行此脚本时,必须在脚本名称后面紧接着输入名字的值,例如:python script.py Alice
,这里的 Alice
就是位置参数 name
的值
【可选参数】(选择性输入)
这些参数在命令行中不是必须输入的,并且通常使用特定的名称或标志(如 --
或 -
)来标识
eg:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true', help='是否输出详细信息')
args = parser.parse_args()
if args.verbose:
print('正在以详细模式运行...')
在命令行中,可以选择输入 python script.py --verbose
来启用详细模式,也可以直接运行 python script.py
而不启用。