前言
前几天遇到编码报错,我自认为下次遇到这样的问题还不手到擒来,结果真就是为了考验我,我又遇上了,这次解决后,我认为以后再出现这种问题就可以分分钟解决了
问题出现及解决
先介绍个小知识点,因为文件中的内容是以字符串形式保存的,所以读取文件中每行的内容可以借助以下模块完成
def r_line():
f = open('f.name')
fList = []
for line in f.readlines():
fList.append(line)
f.close()
上述模块在大多数场景下是适用的,但终究有例外,前几次用这种模块,安然无恙,直到这次,它报错了
然后改进下,使用下面这个,还是报错
def r_line():
f = open('f.name',encoding = 'utf-8')
fList = []
for line in f.readlines():
fList.append(line)
f.close()
继续改进,变为下面这个,没问题了
def r_line():
f = open('f.name',errors = 'ignore',encoding = 'utf-8')
fList = []
for line in f.readlines():
fList.append(line)
f.close()
注意:读取文件时最好按照这三个模板顺序套用,有的模板适用于这种读取,有的适用于另一种,我亲测是这样的
小结
关于文件读取,最容易出现问题的就是编码及文件指针,而编码问题是很烦的,到现在解决这类问题我认为游刃有余了,还不错,问题出现就解决问题,终有天,还会出现问题,没关系,也许哪天人不在了