总结:面对复杂文本的读取,尤其是爬虫获得的以及原始的复杂文本,使用open读取后编码不统一的情况,建议用codecs.open()

写贴原因

因为接触Python时候已经是Python3.x的年代了,用的文件操作最多的就是with open() as file_:这一段话,但是在自然语言处理过程中每次都出现报错,一般都是写入时候或者读取时候说编码错误。大多数时候处理方法是转码,
也就是

input --- encode --- unicode --- output

这样是有问题的,因为文本的数据过大会很久。
无意中发现了python2.x年代的codecs.open()这一方法。他有一个非常重要的特性是:读取文件内容时候,会自动转换为内部的unicode

好处
1.兼容open()函数所有操作命令。
2.指定用什么读取编码,就用什么编码读取和操作,无需担心编码问题。
3.速度是一样的。

函数解说


使用格式

with codecs.open(file=源文件,mode='命令',encoding='编(解)码方式') as 命名:

常见指令
模式分两种:只读模式只写模式读、写模式

指令

作用

建议、注意事项

r

只读模式打开文件

rb

二进制只读模型

文件保存时的编码格式未知,避免乱码时可使用该命令;使用该命令后,需要转码,转码也要注意乱码问题。

r+

读、写模式

rb+

二进制读、写模式

w

(新建)只写模式

文件若存在,首先清空,然后(重新)创建

wb

二进制(新建)只写模式

w+

读、写模式

wb+

二进制读、写模式

读取文件报错无法接吗时候,建议使用该模式,但是读取后,需要编码

a

追加

1.如果文件不存在,将自动被创建; 2.文件存在,结尾处继续编辑

ab

二进制追加

a+

读写模式追加

ab+

二进制读写模式追加

关于如何用python查看文件的格式编码,可以看查看文件编码


常见编码
这个,计算机支持的,都可以,比如'utf-8'等等