使用 argparse 可以方便地解析命令行参数,以下是解析命令行参数的完整攻略:
安装 argparse
argparse 是 Python 的标准库,因此它不需要额外的安装。
导入 argparse 模块
在使用 argparse 之前需要在代码中导入 argparse 模块:
import argparse
创建 ArgumentParser 对象
使用 ArgumentParser 类可以轻松地解析命令行参数。在创建 ArgumentParser 对象时,可以配置一些参数:
parser = argparse.ArgumentParser(description='description of the program')
其中,参数 description 可用于设置关于程序的描述。
添加参数
如下所示可以添加参数:
parser.add_argument('--input', nargs='+', help='input file or files')
parser.add_argument('--output', default='output.txt', help='output file name')
parser.add_argument('--verbose', action='store_true', help='verbose mode')
其中,参数 input 的选项为 --input,其后用 nargs='+', 标识选择要处理的文件,而参数 output 的选项为 --output,其后用 default='output.txt',标识输出文件名为 output.txt,而参数 verbose 的选项为 --verbose,其通过 action='store_true' 让 verbose 开启。
解析参数
解析参数的代码如下所示:
args = parser.parse_args()
解析完成后,返回的是一个 Namespace 对象,其中包含了指定的参数和相应的值。可以使用 args 打印出这些参数和值。
以下是一个示例:
import argparse
parser = argparse.ArgumentParser(description='Get file contents')
parser.add_argument('--filename', type=str, help='file to open')
parser.add_argument('--line', type=int, default=1, help='line number')
args = parser.parse_args()
with open(args.filename, 'r') as file:
lines = file.readlines()
print(lines[args.line-1])
在这个例子中,参数 filename 的选项为 --filename,并且要求指定一个文件的名称。参数 line 的选项为 --line,并且要求指定一个行号。如果 line 参数没有被指定,则 line 参数默认值为 1。命令行中的文件名和行号将被解析为相应的值,并根据这些值打印出文件的一行。
另外一个示例:
import argparse
parser = argparse.ArgumentParser(description='Calculate the square of a number')
parser.add_argument('number', type=int, help='the number to be squared')
args = parser.parse_args()
result = args.number ** 2
print(result)
在这个例子中,'number' 是一个位置参数,表示要对它进行平方运算,如:
python square.py 5
运行后得到的结果是 25。
综上所述,argparse 是 Python 中解析命令行参数的一种常用方法。通过这种方式,可以处理各种参数,并轻松地获取命令行的输入。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 中使用 argparse 解析命令行参数 - Python技术站