文件编码

用pandas将多个同格式csv数据文件合并

﹥>﹥吖頭↗ 提交于 2020-12-03 11:56:56
两个问题: 1.文件编码问题,win系统excel另存的csv文件可以用pandas的encoding='gbk'来读写,对中文就可以很好的支持, python默认的'utf-8'编码的csv文件,excel打开中文是乱码 2.用pandas将多个同格式csv数据文件合并 源码如下: #-*- coding: utf-8 -*- import pandas as pd def csv_merge(flist,fo,cols=None, encoding='gbk'): l=len(flist) for i in range(l): s=pd.read_csv(data_path+flist[i],index_col=None, header=0, usecols=cols, na_values=[''],encoding=encoding) if i==0: s.to_csv(data_path+fo,encoding=encoding, index=False) else: s.to_csv(data_path+fo,encoding=encoding,mode='a', header=False, index=False) import os data_path=r'G:\data' flist =os.listdir(data_path) data_path+='\\' fo

文件,文本文件以及编码——乱码探源(1)

半世苍凉 提交于 2019-11-28 14:39:08
在前面的 字符集编码系列 中,已经探讨了几大主要的字符集编码。在此基础之上,这里将进一步探讨编码的应用及乱码的根源,我们先从基本的文件说起。 文件 文件(内容)就是字节序列。文本文件也是文件,所以它也是字节序列。 文件名与文件内容 通常说到文件时,指的是文件内容,但文件还有文件名,文件名与文件内容是分开存储的。 你可以在硬盘上新建一个文件,它的大小为0.如下: 但它是有文件名的,比如上述的“新建文本文档.txt“,保存这些名字自然也要占用空间,只不过它与文件内容是分离的。 这些由操作系统的文件系统模块负责。 文件名 是一段文本,因此它会涉及字符集编码。 文件内容 则视情况而定: 1. 文本文件,肯定会涉及字符集编码。 常见的比如txt,html,xml以及各种源代码文件等等。 2. 非文本文件,比如图片文件jpg,gif之类,自然跟字符集编码无关了。 有些文件,比如Word的doc之类的,混合了图片跟文本在里面,可以想像,其中的文本部分自然也会牵涉到字符集编码的问题,只不过这些编码不由我们去控制,我们通常也无须去关心。 文件名编码 文件名是一串文本,因此它必然涉及某种字符集编码,只不过这种编码是由操作系统决定的,我们无权干预。 那么,它用的是什么编码呢?在Windows下,可以简单做些实验。我们可以弄些奇怪的文件名如“★★★★.txt”,如下: 结果也能保存