下面是关于Python Argparse的详细使用攻略。
什么是Python Argparse?
Python Argparse是Python语言中的一个命令行参数解析器,可以让我们通过命令行调用程序时,方便地传递参数和选项,进而在程序内部进行处理。
Argparse基本用法
我们可以通过如下代码导入argparse模块(通常使用缩写argpase
):
import argparse
然后,我们可以定义一个ArgumentParser
对象,如:
# 创建一个ArgumentParser对象
parser = argparse.ArgumentParser(description='这是一个使用Argparse的示例程序')
ArgumentParser
对象可通过description
参数设置程序的描述信息。接下来,可以通过add_argument()
方法来定义命令行参数和选项(也称为argument和option):
parser.add_argument('my_argument', help='这是我的命令行参数')
parser.add_argument('--my_option', help='这是我的命令行选项')
这里第一个参数my_argument
为命令行参数,使用时不带--
,而第二个参数--my_option
为可选的命令行选项,使用时需要带--
。
add_argument()
方法还包含很多其它的可选参数,如:
type
:设定选项和参数的数据类型;required
:指定是否必须传入该选项或参数;default
:在未指定选项或参数时的默认值;nargs
:指定该选项或参数的值应该有几个;- 等等。
一些常用的add_argument()
示例如下:
parser.add_argument('filename', help='文件名')
parser.add_argument('--out', '-o', default='output', help='输出目录')
parser.add_argument('--debug', action='store_true', help='输出调试信息')
parser.add_argument('--count', type=int, default=1, help='同时运行的线程数')
最后,我们可以通过parse_argv()
方法来解析命令行参数:
args = parser.parse_args()
此时变量args
的值将会是包含所有参数和选项的一个命名空间Namespace
对象,其中的属性就是我们定义的参数和选项。
例如,我们可以通过args.filename
来获取命令行参数filename
的值,通过args.debug
来获取选项--debug
的值。
Python Argparse示例
示例一
在这个示例中,我们将解析计算两个数字之和的命令行参数。
import argparse
# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='这是一个计算两个数字之和的示例程序')
# 添加position argument
parser.add_argument('num1', help='第一个数字')
parser.add_argument('num2', help='第二个数字')
# 解析命令行参数
args = parser.parse_args()
try:
sum = int(args.num1) + int(args.num2)
print(f'{args.num1} + {args.num2} = {sum}')
except ValueError:
print('错误:所提供的num1和num2参数必须是整数')
运行该程序,例如:
python my_script.py 2 3
会输出如下结果:
2 + 3 = 5
若传入的num1或num2不是整数,则会得到类似于以下的错误信息:
错误:所提供的num1和num2参数必须是整数
示例二
在这个示例中,我们将解析将给定的数组排序并将结果输出到指定文件中的命令行参数。
import argparse
# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='这是一个将数组排序并输出到文件中的示例程序')
# 添加position argument
parser.add_argument('input', help='要排序的数组')
parser.add_argument('output', help='输出文件')
# 添加optional argument
parser.add_argument('--reverse', action='store_true', help='使用逆序排列')
# 解析命令行参数
args = parser.parse_args()
# 读入数组并排序
with open(args.input, 'r') as f:
nums = f.read().split()
if args.reverse:
nums.sort(reverse=True)
else:
nums.sort()
# 输出结果到文件
with open(args.output, 'w') as f:
for num in nums:
f.write(num+'\n')
运行该程序,例如:
python my_script.py input.txt output.txt --reverse
会将文件input.txt
中的数据排序后,以逆序输出到文件output.txt
中。
使用参数--reverse
将会得到倒序输出的结果,而不使用该参数则为顺序输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python argparser的具体使用 - Python技术站