3

我使用 Python 3.2 处理带有 utf-8 文本的文本文件:

import codecs
import csv
f = codecs.open('07362853300091_trade_turquoise_errNo_031.csv', 
                                         'r','utf-8', 'ignore')
text = csv.reader(f, delimiter=',', quotechar='"')
for row in text:
    for item in row:
        print(item)

工作得很好。

我现在必须使用 Python 2.7 解释器运行代码,它会打印:

'\xd7\x97\xd7\x99\xd7\x95\xd7\x91\xd7\x94\xd7\xa8\xd7\xa2\xd7\xa6\xd7\x99\xd7\x95\xd7\x9f'

我试过了

item.encode('utf-8')
print unicode(item, errors='ignore')

(并且还尝试了 encode() 和 unicode() 函数的其他一些组合)并且它总是打印:

你'\u05de\u05e9\u05d9\u05db\u05ea \u05e9\u05d9\u05e7'

如何在 Python 2.7 中将 unicode 文本打印到控制台?

4

1 回答 1

2

请参阅文档unicode_csv_reader()

作为替代方案,如果控制台理解 utf-8 并且除了将它们打印到控制台之外,您不对项目进行任何文本处理,您可以跳过解码/编码:

with open('07362853300091_trade_turquoise_errNo_031.csv', 'rb') as file:
     for row in csv.reader(file):
         print "\n".join(row)
于 2012-08-30T13:43:45.047 回答