1. open()
open() 以二进制流的形式读入的文件,所以读入后需要在read()和每次readline()时,做.decode('utf-8')等。
但.decode('utf-8')在Python 3中的 unicode 字符串中不再存在,所以会导致代码不兼容。
2. codecs.open()
codecs.open() 是网上最流行的多编码读写包,codecs.open(FILE_NAME, 'r', 'utf-8'),之后读入的都转为unicode
之前最常用这个包,但是最近遇到一些问题,比如遇到\r\n,^\(换页符)等,读入会自动产生一些空行等,stackoverflow 上的一些问题:
https://stackoverflow.com/questions/12330522/reading-a-file-without-newlines
3. io.open()
io.open() 是Python 2.6之后新加入的一个为Python 3写的包,暂时没有2的问题,用io.open(FILE_NAME, 'r', encoding='utf-8')
但是,遇到一个特有的问题是,fout.write()时,由于Python 3的特点,必须输出unicode。所以可能需要fout.write(string+u'\n')
做了几十年的项目 我总结了最好的一个盘(纯干货)
新盘 上车集合 留下 我要发发 立马进裙