2020 python学习第九天————文件操作续
1 with上下文管理
with open('a.txt', mode='rt', encoding='utf-8') as f1 , open('b.txt', mode='rt', encoding='utf-8') as f2:
# 自动调用f1.close()、f2.close()回收操作系统
2.1 b模式:读写内容都是以bytes为单位
t模式只能用于读文本文件,它会对文件进行解码
b模式可用于读所有的文件,不会进行任何其他操作直接读出二进制数
2.2 decode
with open('a.txt', mode='rb') as f:
data = f.read()
print(data.decode("utf-8"))
b模式下对文件读取并解码
3. +模式
可读可写模式,可以省略t,默认就是t模式,读写都是以字符串为单位
r+ (r+t) , w+ (w+t) , a+ (a+t)
可读可写模式,b模式下读写都是以bytes二进制为单位
r+b , w+b , a+b
4 文件的操作方式
4.1 readable
判断文件是否可读
4.2 readline,readlines
readline:一次读取一行
readlines:相当于逐行循环
l = f.readlines() == l = [ ]
for line in f:
l.append(line)
4.2 writelines
lines=["1111\n","222\n","333\n"]
f.writelines(lines)
循环取值写入文件
4.3 name
获取文件的路径
4.4 flush
f.flush()
如果程序走但文件没有内容是正常现象,这是io优化的结果
flush是让内容立即写入文件,但会降低程序的运行效率