写入文件时python中的unicode问题

时间:2016-08-23 15:10:46

标签: python unicode

我有一张csv表,我这样读过:

  with open(csvFilePath, 'rU') as csvFile:
        reader = csv.reader(csvFile, delimiter= '|')
        numberOfMovies = 0
        for row in reader:
            title = row[1:2][0]

如您所见,我正在使用title

的值

然后我在互联网上浏览有关该值的一些信息然后我写入文件,写作是这样的:

def writeRDFToFile(rdf, fileName):
    f = open("movies/" + fileName + '.ttl','a')
    try:
        #rdf = rdf.encode('UTF-8')
        f.write(rdf) # python will convert \n to os.linesep
    except:
        print "exception happened for movie " + movieTitle
    f.close()

在该函数中,我将rdf变量写入文件。

如您所见, commetted

如果rdf变量的值包含unicode char 该行未被尊重,则该代码不会向该文件写入任何内容。

但是,如果我只是 commet 那行,那么该代码会写入文件。

好的,你可以这样说:提交那行,一切都会好的,但这是不正确的,因为我有另一个 java 进程(这是Fuseki服务器)读取文件,如果文件包含unicode字符,它会抛出错误。

所以我需要自己解决文件,我需要将数据编码为ut8,

请帮助

1 个答案:

答案 0 :(得分:2)

普通的csv库可能难以将unicode写入文件。我建议你使用unicodecsv库而不是csv库。它支持将Unicode编写为CSV。

实际上,只写:

import unicodecsv as csv