我正在尝试解析文本文件(Valve-KeyValues语言文件),但遇到一些问题。 我正在使用该来解析其他KeyValues文件,并且从我收集的内容来看,它可以完美运行,但是对于语言文件,它仅返回一个空dict。
我尝试了一些简单的操作,例如遍历文件中的所有行并检查字符串是否存在(我只是通过查看文件就知道字符串存在),但它从未找到过。 单个字符似乎可以工作。
如果我将这些行直接打印到控制台中,则看起来每个字符之间都有一个空格。 我将文件上传到这里的 google驱动器中。

这是一个语言文件,所以我想它可以以某种不同的编码存储,但是我无法通过google /找到任何东西,我真的不知道在这里搜索什么。

===============>>#1 票数:1 已采纳

确实,您的文件似乎编码为UTF-16:

$ file ~/Downloads/dota_english.txt
~/Downloads/dota_english.txt: Little-endian UTF-16 Unicode C++ program 
text, with very long lines, with CRLF line terminators

这符合您看到“每个字符之间有一个空格”的描述( UTF-16是两字节编码;对于ASCII文本,这意味着每个字符都表示为一个ASCII字节,后跟一个空字节,在文本中留出空格)。

您可以尝试在加载文件时指定编码,例如使用codecs模块

import codecs
import vdf
d = vdf.load(codecs.open('dota_english.txt', 'r', encoding='utf-16'))

===============>>#2 票数:0

看起来像是其中带有xml的json文件。 您可以上传您的源代码吗? 有很多json解析器。 您可以使用内置的json模块和xmllib。

  ask by Ben T translate from so

未解决问题?本站智能推荐:

1回复

读取文本文件时更改为可识别的编码?

当使用(例如)UTF-8编码打开文本文件进行阅读时,是否可以在阅读过程中更改编码? 动机:很可能您需要读取使用非默认编码编写的文本文件。 文本格式可能包含有关使用的编码的信息。 让一个HTML文件作为示例,或者XML,或者ASCIIDOC,以及许多其他文件。 在这种情况下,编码信息上
1回复

在Python中合并多个文本文件时发生编码错误

我想使用python3合并多个文件。 所有文件都位于一个以.txt为扩展名的文件夹中。 在该文件夹中,有一些以特殊字符开头的文件,例如dot (.)和braces()等。代码和数据集位于单独的文件夹中。 请帮忙。 我尝试过如下: 我面临的跟踪错误是这样的。 文件“
1回复

使用python无法解析文本块:文本文件解析不完整

我是化学家,对编程非常陌生。 我尝试编写程序以使处理数据时的生活更加轻松。 一整天都在搜寻StackOverflow之后,我终于能够编写一个简短的python脚本来解析一个文本文件,该文本文件包含用空白行分隔的相似数据块。 我的代码运行良好,但无法解析最后一块。 我不知道为什么。 我尝
3回复

将文本文件读入字典

我的代码: 它显示以下错误
3回复

测试回文的文本文件

我正在尝试获取一个文本文件,将其转换为列表,然后向用户询问单词长度。 我的功能应该在文本文件中打印所有回文。 我的输出只是一个空列表。 有指针吗?
3回复

计算文本文件中的单词

我有一个文本文件,我想在其中加上“嘎嘎”一词。 名为“ quacker.txt”的文本文件示例: 这是文本文件quack 。 哦,怎么没呱呱 呱呱在他的考试成绩早在2009年嘛,他有9个P等级A,一个B过去了吗?\\ n \\ n他说, 庸医 ,他希望去上大学的\\ n未来,但决定
7回复

使用python创建新的文本文件时出错?

此功能无效,并引发错误。 我是否需要更改任何参数或参数?
2回复

截断文本文件不会更改文件

当一个新手(像我一样)要求在python中读取/处理文本文件时,他经常得到如下答案: 现在我想在特殊行之后截断我正在阅读的文件中的所有内容。 修改上面的例子后,我使用: 并期望它在看到第一个“CC”之后扔掉所有东西。 在input.txt上运行此代码: 控制台上打印以
2回复

与文本文件交互时,Python 3中str.split()的替代方法

我目前正在使用Python创建文件复制器。 当我在实际程序中自定义重复项的数量时,它当前可以单独工作,但是我正在制作一个单独的基本安装文件。 这将允许您指定所需的重复次数。 目前,此号码以列表形式保存到纯文本文档中。 因此,文档的外观可能从[0,1,2,3]到[0,1,2,3,4,5
4回复

读取文本文件时,Python程序会额外打印一行空行

我正在使用python 3.3。 例如,我有一个包含三行文本的文本文件。 我想选择一个数字,它将显示该行号的内容。 由于某种原因,它会打印我想要的行,并在其下方打印一个空行。 文本文件如下所示: 如果我是2,我得到的解释器中的输出: 代码在这里: 我在打印(行