9. 读取文件
乙醇 创建于 about 7 years 之前
最后更新: less than a minute 之前
阅读数: 318
背景
这一节里我们来学习如何使用python来读取文本文件中的内容。
我们将实现一个简单的读取测试用例文件的脚本,脚本运行时候接收1个参数,用来指定需要读取的用例文件。
创建用例文件
新建名为case001.txt
的文本文件,内容如下:
用例编号: itest001
用例名称: 登录成功
测试数据: 用户名:example;密码:example
测试步骤: 略
测试断言: 应该可以正确跳转到www.itest.info
代码实现
新建名为read_case.py
,内容如下
from sys import argv
script, file_path = argv
print(f"读取文件: {file_path}")
print()
file_obj = open(file_path)
print(file_obj.read())
file_obj.close()
运行
在命令行中使用下面的命令去执行代码
$python read_case.py case001.txt
注意:请确保先创建了用例文件case001.txt
注意:请确保用例文件case001.txt跟脚本文件read_case.py在同一个文件目录下
注意: 我们在脚本名称后面加上了case001.txt,这就是我们指定的用例文件名称,千万不要忘记传入这个参数,否则代码将会报如下的错误
Traceback (most recent call last):
File "read_case.py", line 3, in <module>
script, file_path = argv
ValueError: not enough values to unpack (expected 2, got 1)
你应该可以看到
按照下面展示的情况进行输入,如果没有出错的话,你应该可以看到命令行窗口显示如下的内容
读取文件: case001.txt
用例编号: itest001
用例名称: 登录成功
测试数据: 用户名:example;密码:example
测试步骤: 略
测试断言: 应该可以正确跳转到www.itest.info
常见问题
file_obj = open(file_path)
这一行中,file_obj究竟是什么?
file_obj不是文件的内容,而是代表了这个文件本身。我们可以把file_obj想象成是cd或者dvd,读取cd和dvd中内容的时候,我们需要转动碟片,file_obj.read()就像是转动碟片读取内容。file_obj.close()就像是读取结束之后将碟片从机器中退出来。
动手时间
- 我们现在使用的是
$python read_case.py case001.txt
命令来运行脚本,试着去修改我们的脚本文件,让我们在传递参数的只需要传文件的名称,不需要传文件的后缀名。使用$python read_case.py case001
来达到同样的效果 - 传入1个不存在文件,比如case002.txt,看一下会发生什么