文件处理

文件操作分为读、写、修改

文件操作语法:

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.新建一个文件,将旧文件内容读取并处理后,追加写入新文件。缺点:占硬盘

文件操作的其它功能:

文件处理