Python:如何强制iso-8859-1文件输出?

AP2*_*257 6 python character-encoding

如何在Python中强制使用Latin-1(我猜这意味着iso-8859-1?)文件输出?

这是我目前的代码.它可以工作,但是尝试将生成的输出文件导入Latin-1 MySQL表会产生奇怪的编码错误.

outputFile = file( "textbase.tab", "w" )
for k, v in textData.iteritems():
    complete_line = k + '~~~~~' + v + '~~~~~' + " ENDOFTHELINE"
    outputFile.write(complete_line)
    outputFile.write( "\n" )
outputFile.close()
Run Code Online (Sandbox Code Playgroud)

生成的输出文件似乎保存在"Western(Mac OS Roman)"中,但如果我将其保存为Latin-1,我仍会遇到奇怪的编码问题.我怎样才能确保所使用的字符串和文件本身一旦生成就全部用Latin-1编码?

原始字符串(在textData字典中)已经从RTF文件中解析 - 我不知道这是否有所不同.

我对Python和编码有点新手,所以如果这是一个愚蠢的问题,请道歉.我试过看文档,但还没有走得太远.

我正在使用Python 2.6.1.

Tor*_*rek 11

只需使用该codecs模块写入文件:

import codecs
outputFile = codecs.open("textbase.tab", "w", "ISO-8859-1")
Run Code Online (Sandbox Code Playgroud)

当然,你编写的字符串必须是Unicode字符串(类型unicode),如果它们是普通str对象(基本上只是字节数组),它们将不会被转换.我猜您正在使用普通的Python文件对象读取RTF文件,因此您可能必须将其转换为使用codecs.open.