我有一张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,
请帮助
答案 0 :(得分:2)
普通的csv库可能难以将unicode写入文件。我建议你使用unicodecsv库而不是csv库。它支持将Unicode编写为CSV。
实际上,只写:
import unicodecsv as csv