簡體   English   中英

寫入文件時python中的unicode問題

[英]unicode issue in python when writing to file

我有一個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,

請幫助

普通的csv庫可能很難將unicode寫入文件。 我建議您使用unicodecsv庫而不是csv庫。 它支持將unicode寫入CSV。

實際上,只需寫:

import unicodecsv as csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM