Python 读写gbk格式的csv文件,并写入mysql

2016-06-11  本文已影响3586人  leoatchina

这是最近碰到的问题,总结一下,希望有大牛帮助指正

写入到CSV文件,设置文本的格式为gbk格式

  • 在文件开头,设置成gbk格式
import os,sys,re,csv
reload(sys)
sys.setdefaultencoding('gbk')
csvFile=open(dir+'test.csv','wb')
csvFile.write('\xEF\xBB\xBF')  #左边这个很关键,否则会乱码

读取CSV文件,设置文本的格式为utf8格式

  • 在文件开头,设置成utf8格式
reload(sys)
sys.setdefaultencoding('utf-8')
with open('./drugDatabase.csv','rb') as c:
                csvfile=csv.reader(c,delimiter=",",quotechar='"')
                for row in csvfile:
                      test=row[0].decode("gbk").encode("utf-8")

一些解释

  • py文件默认是ASCII编码,需要在代码文件的第一行或第二行添加编码指示
    # coding=utf-8
u=u'unicode编码文字'
g=u.encode('gbk') #转换为gbk格式
print g #此时为乱码,因为当前环境为utf-8,gbk编码文字为乱码
str=g.decode('gbk').encode('utf-8') #以gbk编码格式读取并转换为utf-8格式输出
print str #正常显示中文
g.decode('gbk','ignore').encode('utf-8′) #这个是安全的方法,以gbk编码读取(当然是读取gbk编码格式的文字了)并忽略错误的编码
上一篇 下一篇

猜你喜欢

热点阅读