Python-将Unicode文本写入文本文件?

我正在从Google文档中提取数据,进行处理,然后将其写入文件(最终我将其粘贴到Wordpress页面中)。

它具有一些非ASCII符号。如何将这些安全地转换为可以在HTML源代码中使用的符号?

目前,我正在将所有内容都转换为Unicode,将它们全部合并为Python字符串,然后执行以下操作:

import codecs

f = codecs.open('out.txt', mode="w", encoding="iso-8859-1")

f.write(all_html.encode("iso-8859-1", "replace"))

最后一行存在编码错误:

UnicodeDecodeError:'ascii'编解码器无法解码位置12286的字节0xa0:序数不在范围内(128)

部分解决方案:

此Python运行无错误:

row = [unicode(x.strip()) if x is not None else u'' for x in row]

all_html = row[0] + "<br/>" + row[1]

f = open('out.txt', 'w')

f.write(all_html.encode("utf-8"))

但是,如果我打开实际的文本文件,则会看到很多符号,例如:

Qur’an 

也许我需要写文本文件以外的东西?

回答:

通过在首次获取对象时将其解码为unicode对象,并在出路时根据需要对其进行编码,从而尽可能地专门处理unicode对象。

如果你的字符串实际上是unicode对象,则需要先将其转换为unicode编码的字符串对象,然后再将其写入文件:

foo = u'Δ, Й, ק, ‎ م, ๗, あ, 叶, 葉, and 말.'

f = open('test', 'w')

f.write(foo.encode('utf8'))

f.close()

再次读取该文件时,你将获得一个unicode编码的字符串,可以将其解码为unicode对象:

f = file('test', 'r')

print f.read().decode('utf8')

以上是 Python-将Unicode文本写入文本文件? 的全部内容, 来源链接: utcz.com/qa/428497.html

回到顶部