2017-02-25 68 views
-3

这是代码和输出是\xef\xbb\xbf\如何包含使用Python

# -*- coding: utf-8 -*- 
import codecs 
import csv 
import sys 


with open(u'csv.csv', 'r') as csvfile:              
    reader = csv.reader(csvfile) 
    for row in reader: 
     print row 
+0

该文件是如何编码的? '使用codes.open(u'csv.csv',encoding ='utf-8')作为csvfile:'可能是你想要的,但是你选择哪种编码取决于文件的保存方式。 – tdelaney

+0

该文件编码为utf-8 bom,这也dosnt工作,我得到的错误UnicodeEncodeError:'ascii'编解码器不能编码字符位置0-5:序号不在范围内(128) – lina

+0

我认为你可以使用' utf-8-sig'为编码。解码您发布的物料清单。 – tdelaney

回答

0

蟒蛇2 csv模块不处理Unicode编码以及阿拉伯语系读CSV文件。最好的解决方案是开始使用集成unicode的python 3,它非常适合多语言编程。如果你需要坚持使用python 2,unicodecsv模块(pip install unicodecsv)是处理非ascii文件的csv的直接替代品。

# -*- coding: utf-8 -*- 
import sys 

try: 
    import unicodecsv as csv 
except ImportError: 
    sys.stderr.write(
     "`sudo pip install unicodecsv` for unicode csv support\n") 
    exit(1) 

with open(u'testfile.csv', "rb") as csvfile: 
    reader = csv.reader(csvfile, encoding="utf-8-sig") 
    for row in reader: 
     print u", ". join(row) 
+0

非常感谢,它的wotk – lina