文件处理
目录
文件操作
读文件
文件的处理分为读r,写w,修改x:
读一个文件格式为
f= open(file = D:/xxxx.txt,mode = "r",encoding="utf-8")
data = f.read()
f.close()
测试:
f = open(file="D:/test.txt",mode="r",encoding="utf8")
data = f.read()
print(data)
f.close()
运行报错
Traceback (most recent call last):
File "C:\Users\zhoukaivfx\AppData\Local\Programs\Python\Python37-32\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte
存的时候是什么编码格式,读的时候也要什么编码,不然会报错。python3默认是utf-8,所以会报错。
windows 默认的文件是gbk所以编码格式改为gbk
f = open(file="D:/test.txt",mode="r",encoding="gbk")
data = f.read()
print(data)
f.close()
文件处理-二进制模式 rb
怎么查看文件的编码格式,可以不指定编码模式。r是指读的文本模式,可以把r改为rb,执行输出结果是二进制的编码,不可读,用于网络传输(视频,图片,文本,网络传输用的)
f = open(file="D:/test.txt",mode="rb")
data = f.read()
print(data)
f.close()
输出是二进制的编码
b'\xb2\xe2\xca\xd4\xce\xc4\xbc\xfe'
文件处理-智能检查编码的工具
可以用第三方的模块,chardet,需要手动安装
cmd
pip3 install chardet
安装成功
import chardet
f = open(file="D:/test.txt",mode="rb")
date = f.read()
f.close
result = chardet.detect(date)
print(result)
得到的结果是个字典,有编码格式,可信度(不是百分百准确),语言
解码
date.decode("gbk")
写模式操作文件
格式:
f = open(file="D:/test.txt",mode="w",encoding="utf-8")
f.write("xxxxxxx")
f.close()
w 是创建文件,写入内容,如果已存在这个文件,就会覆盖删除原来的,所以用写模式需要慎重
追加模式
跟写一样,w 改为 a ,
f = open(file="D:/test.txt",mode="a",encoding="gbk")
f.write("\nxxxxxxx") # 在尾部追加一行字符 \n 换行
f.close()
混合操作文件
- 读写模式
先读后写,以读的模式打开,往后追加
f = open(file="D:/test.txt,"r+",encoding="gbk")
date = f.read()
f.write(\n"tobeornot")
f.close()
- 写读模式
写读是以创建模式打开,可以读新写的内容,但是会覆盖之前的内容。
f = open(file="D:/test.txt,"w+",encoding="gbk")
date = f.read()
f.write(\n"tobeornot")
f.close()

更多精彩