解析文本文件时遇到问题(编码?)

我想要一片T骨牛排

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

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

狂野的威廉

确实,您的文件似乎编码为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字节,后跟一个空字节,在文本中留出空格)。

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解析文本文件时遇到问题(编码?)

来自分类Dev

从文本文件读取内容时遇到问题

来自分类Dev

读取文本文件时遇到问题

来自分类Dev

在Java中的文本文件中搜索字符串时遇到问题

来自分类Dev

C ++使用fstream对象读取和写入文本文件时遇到问题

来自分类Dev

选择文本文件的排序键时遇到问题

来自分类Dev

在 C++ 中使用 Visual Studio 读取文本文件时遇到问题

来自分类Dev

从文本文件中计算和求和整数时遇到问题

来自分类Dev

读取以Western编码(ISO-8859-1)编码的文本文件时出现问题

来自分类Dev

使用Matlab打印大列向量的文本文件时遇到的问题

来自分类Dev

创建文本文件时VBA特殊字符编码问题

来自分类Dev

从文本文件读取时的Unicode编码

来自分类Dev

使用PHP解析文本文件时出现问题

来自分类Dev

解析文本文件

来自分类Dev

解析JSON时遇到问题

来自分类Dev

解析json流时遇到问题

来自分类Dev

解析json时遇到问题

来自分类Dev

Googlescript 解析 XML 时遇到问题

来自分类Dev

尝试解析对象的文本文件时出现NumberFormatException

来自分类Dev

从文本文件解析XML内容时发生错误

来自分类Dev

解析文本文件时出现异常行为

来自分类Dev

计数文本文件的行数时出现问题

来自分类Dev

读取JSON文件时遇到问题

来自分类Dev

转换文本文件编码

来自分类Dev

表示用于文本文件的编码

来自分类Dev

转换文本文件编码

来自分类Dev

检测文本文件编码

来自分类Dev

更改文本文件编码

来自分类Dev

查找文本文件的编码