文件操作分为读、写、修改
文件操作语法:
f = open(file='文件路劲',mode='操作模式',encoding='以何种编码打开文件')
data = f.read() # 对文件进行操作
f.close() # 操作完毕后,关闭文件
文本只读模式:
f = open(file='test.txt',mode='r',encoding='utf-8')
data = f.read() # 读文件的方法
print(data)
f.close()
二进制只读模式:以什么编码格式存的就已什么格式读。使用场景:文本远程传输、打开非文本文件等
f = open(file='test.txt',mode='rb')
data = f.read() # 读文件的方法
print(data)
f.close()
编码格式检测的模块:
import chardet
f = open(file='test.txt',mode='rb')
data = f.read()
f.close()
result = chardet.detect(data)
print(result)
打印结果分析:
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''} #encoding:编码格式,confidence:正确率,language:什么语言
文本只写模式:清空再写,所以一旦使用旧数据就找不回来了,所以要慎重使用
f = open(file='test.txt',mode='w',encoding='utf-8')
data = f.write()# 写入文件的方法,返回写入的字符数
print(data)
f.close()
二进制只写模式:以什么编码格式存。使用场景:文本、文件的写入等
f = open(file='test2.txt',mode='wb')
data = f.write('感觉人生已经到达了高潮!'.encode('utf8')) # 返回字节数
f.close()
print(data)
以追加模式写入:
f = open(file='test2.txt',mode='a',encoding='utf8')
data = f.write('感觉人生已经到达了高潮2!')
f.close()
print(data)
以二进制模式追加写入:
f = open(file='test2.txt',mode='ab')
data = f.write('感觉人生已经到达了高潮3!'.encode('utf8'))
f.close()
print(data)
以读写模式打开:先读再写
f = open(file='test2.txt',mode='r+',encoding='utf8')
print(f.read())
f.write('感觉人生已经到达了高潮4a!')
print(f.read())
f.close()
以写读模式打开:以先写在读的模式打开,所以会写清空文件内容
f = open(file='test2.txt',mode='w+',encoding='utf8')
print('old:',f.read())
f.write('感觉人生已经到达了高潮4a!')
print('new:',f.read())
f.close()
文件修改:
由于硬盘的物理原因,无法直接在硬盘上友好的修改数据(强行修改可能会导致字节被覆盖,使得数据无法被识别)。
因此,一般文件修改有两种模式:
1.直接读到内存,在内存中修改完后,重新写回文件。缺点:占内存
2.新建一个文件,将旧文件内容读取并处理后,追加写入新文件。缺点:占硬盘
文件操作的其它功能: