当前位置: 首页 > 面试题库 >

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

狄钧
2023-03-14
问题内容

我正在从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')


 类似资料:
  • 我正在使用twitter python库从公共流中获取一些推文。该库以json格式获取推文并将其转换为python结构。我正在尝试做的是直接获取json字符串并将其写入文件。在twitter库中,它首先读取网络套接字并将应用到缓冲区。然后,它将信息包装在python结构中并返回。我可以使用将其编码回json字符串并将其保存到文件中。但是我想字符编码有问题。当我尝试打印json字符串时,它在控制台中

  • 问题内容: 我正在尝试将不同语言的字符串写入rtf文件。我尝试了一些不同的东西。我在这里以日语为例,但是我尝试过的其他语言也是如此。 我还尝试过: 或更具体: 输出流还具有writeUTF方法: 您可以使用write方法在输出流中直接使用byte []。以上所有内容使我发现西欧语言以外的所有字符都乱码。为了查看它是否有效,我尝试在notepad ++中打开结果文档并设置适当的编码。我也使用过Ope

  • 问题内容: 我有这样的熊猫DataFrame 我想将此数据写入如下所示的文本文件: 我已经尝试过类似的东西 但它不起作用。这该怎么做? 问题答案: 您可以只使用和访问np属性: 产量: 或: 请注意,您必须传递通过追加模式创建的文件句柄。

  • 问题内容: 我将日志保存到sdcard上的.txt文件中,但是一旦保存了两行,它就会覆盖它并重新开始? 这是我的代码: 在恢复中挂载/ data后,/ sdcard和/ data / media / 0中的日志文件会显示完整的日志历史记录,但在设备开机时不会显示完整的日志历史记录 问题答案: 这是完成的方式。以下示例代码在单击提交按钮后将详细信息保存到文件中: 希望这可以帮助 :)

  • 问题 你想在文本模式打开的文件中写入原始的字节数据。 解决方案 将字节数据直接写入文件的缓冲区即可,例如: >>> import sys >>> sys.stdout.write(b'Hello\n') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be str,

  • 问题内容: 输出文件包含: 问题出在哪里?如何使用写入文本文件? 问题答案: 你必须写String … 你可以试试。 要么 要么