Python argparse模块是一个易于使用且功能强大的命令行参数解析库。它使得编写提供给用户的脚本的命令行界面变得容易,并且是处理命令行参数和选项的标准方式。
本文将详细讲解argparse模块的传参用法,其中包含以下主要内容:
- 命令行参数解析基本概念
- argparse基本用法
- 构建解析器和设置参数
- 示例说明
命令行参数解析基本概念
命令行参数是指在命令行中输入的一些参数,也称为命令行选项或命令行标志。例如,在Linux系统中,我们可以使用”-a“选项来指定显示所有文件的命令:
ls -a
在Python开发中,我们通常使用sys.argv来解析命令行参数。但是,对于复杂的命令行选项和参数,使用sys.argv可能会变得非常麻烦。所以argparse模块应运而生。
argparse模块可以帮助我们更简单地处理命令行参数,它可以自动生成带有选项和参数的解析器,并且具有自动生成帮助信息的功能。因此,使用argparse模块可以使代码更加清晰易懂。
argparse基本用法
argparse模块的基本用法如下:
import argparse
# 创建解析器
parser = argparse.ArgumentParser(description='example')
# 添加参数
parser.add_argument('--name', required=True, help='your name')
# 解析参数
args = parser.parse_args()
以上代码中,我们需要使用argparse模块中的ArgumentParser创建一个解析器,并使用add_argument来添加参数。然后使用parse_args方法来解析参数。
构建解析器和设置参数
下面,我们将构建一个简单的命令行参数解析器,并设置一些参数来测试不同的功能。
import argparse
# 创建解析器
parser = argparse.ArgumentParser(description='This is a description')
# 添加必选参数
parser.add_argument('filename', help='the filename')
# 添加可选参数
parser.add_argument('--filetype', help='the file type')
parser.add_argument('--version', action='version', version='%(prog)s 1.0')
parser.add_argument('--verbose', action='store_true', help='show verbose messages')
# 解析参数
args = parser.parse_args()
# 打印结果
print('Filename:', args.filename)
print('File type:', args.filetype)
print('Verbose:', args.verbose)
上述代码中,我们首先创建了一个解析器,指定了描述信息。接着添加了必选参数filename和可选参数filetype、version和verbose。其中,version参数使用了action='version'来自动显示版本信息。verbose参数使用了action='store_true'来存储一个布尔值,用于判断是否需要打印详细信息。
示例说明
接下来,我们将使用两个例子来说明argparse模块的传参用法。
示例一
我们需要编写一个Python脚本来执行一个简单的加法操作。用户可以在控制台输入两个数字,程序将打印他们的和。
首先,我们在控制台输入以下命令创建脚本文件:
touch add.py
然后,我们在add.py中添加以下代码:
import argparse
# 创建解析器
parser = argparse.ArgumentParser()
# 添加参数
parser.add_argument('num1', type=int, help='first number')
parser.add_argument('num2', type=int, help='second number')
# 解析参数
args = parser.parse_args()
# 构造sum并打印结果
sum = args.num1 + args.num2
print('sum:', sum)
在控制台中输入以下命令执行脚本:
python add.py 2 3
输出结果如下:
sum: 5
上述代码中,我们使用argparse模块创建了一个解析器。然后添加了两个必选参数num1和num2,分别用于指定加法的两个操作数。在解析参数之后,我们使用这两个数计算和并打印结果。
示例二
我们需要编写一个Python脚本,用于在控制台中显示用户指定目录下的所有文件名。
首先,我们在控制台输入以下命令创建脚本文件:
touch filelist.py
然后,我们在filelist.py中添加以下代码:
import argparse
import os
# 创建解析器
parser = argparse.ArgumentParser()
# 添加参数
parser.add_argument('dir', type=str, help='directory')
parser.add_argument('--all', action='store_true', help='show hidden files')
parser.add_argument('--ext', type=str, help='specified file extension')
# 解析参数
args = parser.parse_args()
# 获取指定目录下的所有文件
files = os.listdir(args.dir)
# 遍历文件并过滤结果
for f in files:
# 如果--all选项被指定,或文件名不以'.'开头,且文件名满足指定的扩展名,
# 则打印文件名
if args.all or not f.startswith('.') and (not args.ext or f.endswith(args.ext)):
print(f)
在控制台中输入以下命令执行脚本,指定显示当前目录下所有扩展名为".txt"的文件:
python filelist.py ./ --ext .txt
输出结果如下:
test.txt
上述代码中,我们使用argparse模块创建了一个解析器。然后添加了一个必选参数dir,用于指定要显示的目录。还添加了两个可选参数:all用于指定是否显示隐藏文件;ext用于指定要显示的文件扩展名。解析参数之后,我们遍历指定目录下的所有文件并过滤结果,最终输出文件名。
以上就是Python argparse模块传参用法实例的完整攻略。通过本文的介绍和两个示例,你应该可以熟练掌握argparse模块的使用方法了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python argparse模块传参用法实例 - Python技术站