目录

文件操作

读文件

文件的处理分为读r,写w,修改x:
读一个文件格式为

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
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()
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄