为了账号安全,请及时绑定邮箱和手机立即绑定

使用Python 2.7读取和写入CSV文件,包括unicode

使用Python 2.7读取和写入CSV文件,包括unicode

不负相思意 2019-08-13 10:26:34
使用Python 2.7读取和写入CSV文件,包括unicode我是Python新手,我有一个关于如何使用Python来读写CSV文件的问题。我的文件包含德语,法语等。根据我的代码,可以在Python中正确读取文件,但是当我将其写入新的CSV文件时,unicode会变成一些奇怪的字符。我的代码是:import csv f=open('xxx.csv','rb')reader=csv.reader(f)wt=open('lll.csv','wb')writer=csv.writer(wt,quoting=csv.QUOTE_ALL)wt.close()f.close()你能告诉我应该怎样做才能解决这个问题吗?非常感谢你!
查看完整描述

3 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

确保您根据需要进行编码和解码。


此示例将utf-8中的一些示例文本往返到csv文件并返回以演示:


# -*- coding: utf-8 -*-

import csv


tests={'German': [u'Straße',u'auslösen',u'zerstören'], 

       'French': [u'français',u'américaine',u'épais'], 

       'Chinese': [u'中國的',u'英語',u'美國人']}


with open('/tmp/utf.csv','w') as fout:

    writer=csv.writer(fout)    

    writer.writerows([tests.keys()])

    for row in zip(*tests.values()):

        row=[s.encode('utf-8') for s in row]

        writer.writerows([row])


with open('/tmp/utf.csv','r') as fin:

    reader=csv.reader(fin)

    for row in reader:

        temp=list(row)

        fmt=u'{:<15}'*len(temp)

        print fmt.format(*[s.decode('utf-8') for s in temp])

打印:


German         Chinese        French         

Straße         中國的            français       

auslösen       英語             américaine     

zerstören      美國人            épais  


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 1459 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信