典型的文件处理流程如下:
利用命令行参数
sys.argv
命令行参数是读取文件时常用的方式。
命令行参数保存在 sys.argv 的列表中,列表的第一个元素是脚本名称,后面的元素是命令行参数:
通过以下脚本 sys_argv.py 可以熟悉命令行参数的获取:
1 importsys2
3 print(f'运行的脚本名是:{sys.argv[0]}')4 print(f'sys.argv 列表的长度是:{len(sys.argv)}')5 print(f'该脚本的参数是:{sys.argv[1:]}')
运行命令 python sys_argv.py 666 yu 可以得到以下输出:
运行的脚本名是:sys_argv.py
sys.argv 列表的长度是:3
该脚本的参数是:['666', 'yu']
argparse
当程序比较复杂时,我们一般不会直接使用 sys.argv,而应该使用 Python 的标准库 argparse。
argparse 做了一些封装。使用 argparse,程序可以识别需要哪些参数,如何解析参数,以及提供帮助信息和使用信息,也提供自动化的错误信息。
下面是使用 argparse 的示例:
1 importargparse2
3 #创建 ArgumentParser 对象,参数会自动保存到该对象中
4 #description 在使用 -h/--help 的时候会显示这个文本
5 parser = argparse.ArgumentParser(description='某图像处理')6
7 #添加参数
8 #第一个参数是给 parser 添加的变量
9 #type 指定类型
10 #help 解释参数
11 parser.add_argument('image', type=str, help='图像路径')12
13 #调用 parse_args() 可以获取参数
14 args =parser.parse_args()15 print(args.image)
运行命令 python argparse_demo.py '../data/yiquan.jpeg' ,可以输入:
../data/yiquan.jpeg
读写图片
读入图片
一个利用参数读取图片的例子:
1 """
2 读取图片3 """
4 importargparse5 importcv26
7 #创建 ArgumentParser 对象
8 parser =argparse.ArgumentParser()9
10 #添加参数,默认类型是字符串
11 parser.add_argument('path_image', help='图像路径')12
13 #解析参数
14 args =parser.parse_args()15
16 #根据图像路径加载输入图像
17 imag