我有一个文本文件“words.txt”,其中包含英语单词。假设它只包含三个单词:“一”、“二”和“三”。 我还有三个文件:one.dat、two.dat 和 Three.dat。这些文件中的每一个都包含表示相应单词的转录的二进制数据。格式为UTF-8。 我想要什么:我想将“words.txt”和所有这些 .dats 合并到我可以打印的单个文档中。所以我需要这样的东西(让我们将其命名为“final.dat”):
一个[wan] 两个[你:] 三个 [?ri:]
但是用正确的“th”符号而不是“?” :)
最重要的是我必须能够将“final.dat”加载到MSWord或Writer中并将其打印出来。
我将通过 python 来完成它,但我真的被所有这些“编解码器”、“编码”、“解码”等等所困扰......
最佳答案
在 Python 2.x 中,可以使用以下命令完成读取 UTF-8 文件
open('one.dat').read().decode('utf-8')
或
codecs.open('one.dat', encoding='utf-8').read()
两者都返回一个 Python unicode
对象。如果要将 str
(ASCII/二进制字符串)s
转换为 unicode
,请使用 s.decode('utf- 8')
.
在 Python 3.x 中,只需这样做
open('one.dat').read()
或
open('one.dat', encoding='utf-8').read()
这个想法是 str
(Py2.x) 或 bytes
(Py3.x) 对象仅包含 some< 中字符串的二进制表示形式/em> 编码而不指定是哪种编码; decode
方法将其转换为正确的 Unicode 字符串(2.x 中为 unicode
,3.x 中为 str
)。
(顺便说一句,UTF-8 不是“二进制数据”,它只是非 ASCII 编码的文本。)
关于python收集ascii和utf-8的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8065914/