Python3读文件和问题解决
2021-06-21 05:04
标签:http def 编码格式 ignore 一个 info 没有 列操作 格式 文件是存储在硬盘上的,程序读文件首先就是要将文件和内存对象关联起来,打开文件,再通过一系列操作使得对象能获得文件的内容。 open()方法能打开文件并在内存中创建一个文件对象。 使用方法:open(磁盘文件名,打开方式) 但是这样写是有问题的,我们看看问题都出在哪里。 问题1:没有进行关闭文件的操作 文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。 问题2:编码格式报错 错误的意思是Unicode的解码(Decode)出现了错误(Error),以gbk编码的方式去解码(该字符变成Unicode),但是位置440处的字节0xfd无法通过gbk的方式解码。 这个错误就是说可能要处理的字符本身不是gbk编码,但是却以gbk编码去解码 。比如,字符串本身是utf-8的,但是却用gbk去解码utf-8的字符串,所以结果必然会出错。 解决方法: 1(不合适)以二进制的形式读入,将打开方式‘r‘改为‘rb‘ 这样二进制的读入方式会将一些不必要的换行符‘\n‘或文件结束符‘0x1A‘(EOF)当作正常字符解码,使得后续分词操作、词频统计无法进行 2 加编码方式 在打开文本的时候,就指明编码方式 gb18030是一种编码范围更广泛的编码方式,如果有连它都无法编码的字符,可以在语句中加上errors属性 更改完错误后输出结果: Python3读文件和问题解决 标签:http def 编码格式 ignore 一个 info 没有 列操作 格式 原文地址:https://www.cnblogs.com/Rare2/p/9686034.html1 def main():
2 file = open(‘news_tensite_xml.dat‘,‘r‘)
3 for i in range(20):
4 line = file.readline()
5 print(line)
6 main()1 def main():
2 file = open(‘news_tensite_xml.dat‘,‘r‘)
3 for i in range(20):
4 line = file.readline()
5 print(line)
6 file.close()
7 main()
def main():
file = open(‘news_tensite_xml.dat‘,‘r‘,encoding=‘gb18030‘) #其中gb18030可换成utf-8或gbk
for i in range(20):
line = file.readline()
print(line)
file.close()
main()
1 file = open(‘news_tensite_xml.dat‘,‘r‘,encoding=‘gb18030‘,errors=‘ignore‘)