如何打开内部编码格式不统一的文件?
2017-11-17 19:54
323 查看
在进行数据处理过程中,发现数据文件如下图所示:
![](http://img.blog.csdn.net/20171117193234915?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM0NzY0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
使用内置open()函数无法直接打开,怀疑文件内部编码格式不统一,经过网上查资料,发现python的codecs模块,专门用于自然语言编码转换;
codecs模块提供了open()方法,简化了对特定字符编码的StreamReader、StreamWriter和StreamReaderWriter的访问,通过encoding参数传递字符编码名称,即可获得对encoder和decoder的双向服务;
简单来说,Python做编码转换时,会借助内部编码,转换过程为:原有编码->内部编码->目标编码,codecs模块的open()方法会统一将文件转换为内部Unicode编码格式,打开的文件不会出现编码问题导致的乱码。
如此,打开内部编码格式不统一的大文件时,可以使用如下方法:
使用内置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)
相关文章推荐
- Eclipse下如何统一修改某一类型文件的编码格式
- 详解Java如何获取文件编码格式
- eml格式是什么格式文件?如何打开eml文件?
- 如何在word2003中打开word2007格式的文件
- 项目中需要统一工程代码和属性文件的编码格式
- 如何在GNU/Linux操作系统中使用命令行xdg-open打开一个任意格式的文件
- Java如何获取文件编码格式
- myeclipse下如何设置指定类型文件的编码格式
- 如何编码实现NTFS格式下删除文件的恢复(结束)
- linux下如何查看文件编码格式及转换文件编码
- 用Excel打开csv文件时,如何处理数字内容展现会自动转换格式的问题
- jsp是什么文件 如何打开jsp格式的文件
- Win8系统下如何运行rar格式文件 Win8电脑rar文件怎么解压打开
- 【转】python基础===codecs打开文件,解决文件编码格式的问题
- 如何打开docx格式的文件?
- linux下如何查看文件编码格式及转换文件编码
- 如何解决.csv格式文件用excel打开是乱码的问题?
- python基础===codecs打开文件,解决文件编码格式的问题
- 如何判断文件的编码格式
- eclipse中如何正确打开对应格式的文件比如.ftl , .bpmn等