python收集ascii和utf-8的东西

标签 python encoding codec

我有一个文本文件“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/

相关文章:

python - python中alpha排序最快的列表

html - 无法在浏览器中显示希腊字母

android - Android 4.1 上的 FLAC 编解码器

python - 如何将按 x、y、z 坐标排序的 pandas 数据框转换为 numpy 数组列表?

python - Python xml.dom 中的非递归(单节点级别)getElementsByTagName

python - 如何在常规 django View 中将数据添加到 tastypie 资源

linux - 如何连接来自 DVB 卡的 ATSC 流?

java - 编码字符串会占用更少的内存吗?

video - html5media 和 flowplayer wmode 问题

linux - OpenCV VideoWriter 打不开