一、介绍
Python中有一个很强大的命令行参数解析模块 argparse ,使用 argparse 可以非常方便地解析命令行参数并生成帮助信息。argparse 模块可以自动生成帮助信息,还可以自动检查参数和选项的类型以及输入的值是否合法。
二、基本使用
在使用 argparse 之前,需要先导入 argparse 库:
import argparse
接下来,创建一个 ArgumentParser 对象,该对象包含了程序中每个命令行参数有关的信息。
parser = argparse.ArgumentParser(description="description")
其中,description 是该 ArgumentParser 对象的描述信息,在打印帮助信息时将使用该描述信息。接下来,我们可以添加参数。
parser.add_argument('-n', '--name', required=True, help="input your name")
该函数有几个参数需要解释一下:
- -n 和 --name 表示参数的方式。其中,-n 是一种短参数的方式,--name 是一种长参数的方式。其中,长参数一般是为了人类方便理解。
- required=True 表示该参数为必选参数。
- help 是提供给用户的帮助信息。
至此,我们已经定义了一个参数,但是这个参数究竟如何使用呢?
在程序的任意位置,通过如下方式获取参数的值:
args = parser.parse_args()
name = args.name
其中,name 是指获取 -n 或 --name 选项所传递的参数值。
三、实例说明
下面通过两个实例来进一步讲解 argparse 的使用。
实例一:input 参数
import argparse
parser = argparse.ArgumentParser(description="input your name")
parser.add_argument('-n', '--name', required=True, help="input your name")
args = parser.parse_args()
print("Hello " + args.name)
如上述代码所示,我们通过 argparse 封装了一个带有一个必输参数的 Python 脚本,该参数的名称为 name ,执行该脚本时需要输入一个字符串类型的参数。
当用户运行上述脚本时,会看到类似这样的输出:
$ python argparse_demo.py -n kidd
Hello kidd
可以看到,我们在调用程序时通过 -n 参数指定了值,程序正确地返回了 hello kidd 的输出结果。
实例二:output 参数
import argparse
parser = argparse.ArgumentParser(description="output file name")
parser.add_argument('-o', '--output', required=False, help="output file name")
args = parser.parse_args()
filename = args.output or "output.txt"
with open(filename, 'w') as f:
f.write("Hello argparse")
上述代码中,我们封装了一个支持可选输出文件名的 Python 脚本。该脚本默认生成一个名为 output.txt 的文件,通过 -o 或 --output 参数指定需要生成的文件名。
当用户运行上述脚本时,则可以查看到指定文件内容已经被写入。
$ python argparse_demo.py -o demo.txt
这条命令将会把 "Hello argparse" 写入到 demo.txt 文件中。如果不指定 -o 参数,则会默认使用 output.txt 文件名。
至此,我们就完成了 argparse 模块的使用说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中命令行参数argparse模块的使用 - Python技术站