您的位置:首页 > 编程语言 > Python开发

如何打开内部编码格式不统一的文件?

2017-11-17 19:54 323 查看
在进行数据处理过程中,发现数据文件如下图所示:



使用内置open()函数无法直接打开,怀疑文件内部编码格式不统一,经过网上查资料,发现python的codecs模块,专门用于自然语言编码转换;

codecs模块提供了open()方法,简化了对特定字符编码的StreamReader、StreamWriter和StreamReaderWriter的访问,通过encoding参数传递字符编码名称,即可获得对encoder和decoder的双向服务;

codecs.open(filename,mode='r',encoding=None,errors='strict',buffering=1)


简单来说,Python做编码转换时,会借助内部编码,转换过程为:原有编码->内部编码->目标编码,codecs模块的open()方法会统一将文件转换为内部Unicode编码格式,打开的文件不会出现编码问题导致的乱码。

如此,打开内部编码格式不统一的大文件时,可以使用如下方法:

import pandas as pd
import codecs

filename = "E:/学习相关/Python/数据样例/counter数据/counter___PM_LTE_CellCounter__100__1.csv"
with codecs.open(filename,'rb', "utf-16") as f:
reader = pd.read_csv(f,sep=',',iterator=True)
loop = True
chunkSize = 100000
chunks = []
while loop:
try:
chunk = reader.get_chunk(chunkSize)
chunks.append(chunk)
except StopIteration:
loop = False
print("Iteration is stopped.")
df = pd.concat(chunks, ignore_index=True)
print(df)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 编码