Python文件的读写操作

1.文件的打开访问模式

打开模式 描述
r 以只读⽅式打开⽂件。⽂件的指针将会放在⽂件的开头。这是默认模式。
w 打开⼀个⽂件只⽤于写⼊。如果该⽂件已存在则将其覆盖。如果该⽂件不存在,创建新 ⽂件。
a 打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。也就是 说,新的内容将会被写⼊到已有内容之后。如果该⽂件不存在,创建新⽂件进⾏写⼊
rb 以⼆进制格式打开⼀个⽂件⽤于只读。⽂件指针将会放在⽂件的开头。这是默认模式
ab 以⼆进制格式打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结 尾。
r+ 打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头
w+ 打开⼀个⽂件⽤于读写。如果该⽂件已存在则将其覆盖。如果该⽂件不存在,创建新⽂ 件。
a+ 打开⼀个⽂件⽤于读写。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。⽂件打开 时会是追加模式。如果该⽂件不存在,创建新⽂件⽤于读写
rb+ 以⼆进制格式打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头
wb+ 以⼆进制格式打开⼀个⽂件⽤于读写。如果该⽂件已存在则将其覆盖。如果该⽂件不存 在,创建新⽂件。
ab+ 以⼆进制格式打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结 尾。如果该⽂件不存在,创建新⽂件⽤于读写。

2.文件读写与字符编码

在这里插入图片描述

3.读数据

3.1 read()方法

举例:

打开一个文件,用“r”模式 ,读取数据 。将文件的所有内容一次性的读取 ,如果文件的内容非常多,内存就会出现峰值。

f = open("result(8).txt", "r", encoding="utf-8")
content = f.read()
print(content)
# 打开文件后,必须手动关闭文件
f.close() 

输出结果(只列举部分数据)

e3e856a5f76a4e7783d6bd5e88ea0529.wav 安徽省 滁州市 滁州大道与淮安路交叉口 有效 [M] 无 有 无 [0.204][2.579]
e41e636b38cc4b97b11aeb4c2f9551d4.wav 安徽省 合肥市 千禧大酒店 有效 [M] 无 无 无 [0.422][1.658]
e425acfdfe5343e4999865c516b64168.wav 安徽省 铜陵市 最近路线 有效 [M] 无 有 无 [0.001][1.299]

3.2 read(num)

使⽤read(num)可以从⽂件中读取数据,num表示要从⽂件中读取的数据的⻓度(单位是字节),如果没有传⼊num,那么就表示读取⽂件中所有的数据。

举例:

f = open("result(8).txt", "r", encoding="utf-8")
# 如果read(n)后面还有read()从,前一个read()读取位置开始读取
content = f.read(20)
print(content)
f.close()

3.2 readline()

每次读取一行,下一次读取内容,返回的是又是一行。

举例:

f = open("result(8).txt", "r", encoding="utf-8")
# 如果read(n)后面还有read()从,前一个read()读取位置开始读取
content = f.readline()
print(content, end="")
content = f.readline()
print(content, end="")
content = f.readline()
print(content, end="")
f.close()

3.3 readlines()

readlines()可以按照⾏的⽅式把整个⽂件中的内容,进⾏⼀次性读取。并且返 回的是⼀个列表,其中每⼀⾏的数据为⼀个元素,该方法在实际工作,是最经常使用的。

举例:

f = open("result(8).txt", "r", encoding="utf-8")
content = f.readlines()
print(content)
f.close()

结果:

[‘声音\t省份\t城市\t文本\t是否有效\t性别\t口音\t底噪\t儿童音\t起止时间点\n’,
‘01e82eb690234bfb8281e7a2821972c6.wav\t安徽省\t阜阳市\t无效\t\t\t\t\t\t\n’]

由于数据量很大,这里我只列出部分数据。

4.with 方法的使用

with()方法简单的来说,就是打开一个文件,不用手动的关闭该文件了。有关with()的具体使用,可以参考这篇博:
python中的with上下文管理器

举例:

with open("result(8).txt", "r", encoding="utf-8") as f:
    content = f.readlines()
    print(content)

结果:

[‘声音\t省份\t城市\t文本\t是否有效\t性别\t口音\t底噪\t儿童音\t起止时间点\n’,
‘01e82eb690234bfb8281e7a2821972c6.wav\t安徽省\t阜阳市\t无效\t\t\t\t\t\t\n’]

发布了140 篇原创文章 · 获赞 51 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_38819889/article/details/102852922