python操作txt文件读和写

本博文记录通过python读写txt文件,记录读写的方法,以及在应用中遇到的错误

1、打开文件

无论是写文件,还是读文件,第一步都是先将文件打开,在这里通过python内置的open方法打开,语法如代码所示:

file=open("d:\\test\\test1.txt",'r')
或者 file=open("d:/test/test1.txt","r")
文件的路径要用双斜杠‘\\’,python中\是转义字符,\t是制表符,所以如果我的路径是\\test\\test1.txt
file是变量名,括号内第一个值是文件路径,第二个值是打开模式

打开模式有r,r+,w,w+,a,a+,b,U
① r 以只读的方式打开
② r+以读写的方式打开
③ w 以写入的方式打开,会覆盖原有文件的所有内容,如果不存在,就新建一个文件
④ w+以读写的方式打开,会覆盖原有文件的所有内容,如果不存在,就新建一个文件
⑤ a以写入的方式打开,不会覆盖原有文件的所有内容,追加到文件的最后,如果不存在,就新建一个文件
⑥ a+以读写的方式打开,不会覆盖原有文件的所有内容,追加到文件的最后,如果不存在,就新建一个文件
⑦ b以二进制的方式打开,可以结合r w a使用
⑧ U支持所有的换行符号

最开始直接执行file=open(“d:\test\test1.txt”,‘r’),遇到了错误提示:
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x8c in position 19: illegal multibyte sequence
【字符编码解码错误:“gbk”编解码器无法解码位置19的0x8c 字节 非法的多字节序列】
在这里插入图片描述
解决办法:在open方法里面指定编码格式:

file=open("d:\\test\\test1.txt",'r',encoding='UTF-8') #在open方法中指定编码格式

2、读取文件

读取文件有三种python内置的方式,不需要另外导入包
read()读取文件的全部内容
readline()读取文件的第一行内容
readlines()读取文件的每一行内容
下面通过执行代码,看看三种方法的差异

2.1 read()方法读取文件

代码示例如下:

file=open("d:\\test\\test1.txt",'r',encoding='UTF-8') #以只读的方式打开txt文件,实例化赋值给变量file
result=file.read()  #通过file对象的read()方法将文件读出,并赋值给变量result
print(result)  #输出读取的内容
file.close()  #关闭文件释放资源

运行的结果如下图所示,read()方法读取了txt所有的内容,并将内容打印在屏幕上
在这里插入图片描述

2.2readline()方法读取文件

代码示例如下:

file=open("d:\\test\\test1.txt",'r',encoding='UTF-8') #以只读的方式打开txt文件,实例化赋值给变量file
result=file.readline()  #通过file对象的read()方法将文件读出,并赋值给变量result
print(result)  #输出读取的内容
file.close()  #关闭文件释放资源

运行的结果如下图所示,readline()方法读取了txt文件第一行内容,并将第一行内容打印在屏幕上
在这里插入图片描述

2.3readlines()方法读取文件

代码示例如下:

file=open("d:\\test\\test1.txt",'r',encoding='UTF-8') #以只读的方式打开txt文件,实例化赋值给变量file
result=file.readlines()  #通过file对象的read()方法将文件读出,并赋值给变量result
print(result)  #输出读取的内容
file.close()  #关闭文件释放资源

运行的结果如下图所示,readlines()方法读取了txt文件所有的内容,打印出来的是列表,每一行内容作为列表的一个元素
在这里插入图片描述

2.4 readlines()方法在测试中的应用

在测试过程中一般采用readlines()方法,一行数据作为列表中的一个元素,测试的时候可以通过循环的方法读取每一行数据,将一组数据作为一个测试用例,比如

file=open("d:\\test\\test1.txt",'r',encoding='UTF-8') #以只读的方式打开txt文件,实例化赋值给变量file
result=file.readlines()  #通过file对象的read()方法将文件读出,并赋值给变量result
for i in result:    #循环语句输出每一行
	print(i)
file.close()  #关闭文件释放资源

运行结果如下图:
在这里插入图片描述

3、文件写入

文件写入也是通过python的内置函数,在自动化测试的时候,可以用来生成测试报告
文件写入的方式有两种:
write()将全部内容一起写入文件 //write只支持str字符串
writelines()把列表的内容逐行写入文件 //writelines支持str 和list
一般情况下,在测试的时候用write()方法就行了

3.1write()方式写入文件

示例代码:

file=open("d:/test/test1.txt",'a+',encoding='UTF-8')
file.write("123456677868")
file.close()

运行结果
在这里插入图片描述

3.2writelines()方式写入文件

示例代码:

file=open("d:/test/test1.txt",'a+',encoding='UTF-8')
text = ['123','234','456','123434,45353']
file.writelines(text)
file.close()

运行结果:
在list中的参数末尾必须加上’\n’的换行符,不然list中的各元素会被写入一行
在这里插入图片描述

writelines()也支持字符串,运行结果如下,只能写入一行
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/HBT036017/article/details/104945310