总结:面对复杂文本的读取,尤其是爬虫获得的以及原始的复杂文本,使用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'
等等