0

我有一个包含多字节数据的日志文件()。我想编写一个对其进行一些数据操作的脚本。

with open(fo, encoding="cp1252") as file:
    for line in file:
        print(line)
        if("WINDOWS" in line):
            print(found)

print(line) 给出以下输出: 在此处输入图像描述

每个字符后面都有一个额外的字节。由于WINDOWS不是多字节,这不起作用。我无法找到解决方案。有人可以在这里帮助我吗?

4

1 回答 1

1

cp1252不是多字节编码。如果文件实际上包含 UTF-16,但其中大部分都在 Unicode 的最低范围内,则使用cp1252将产生大致正确的字符,但它们之间会有零(空)字节。如果没有文件中字节的明确样本,我们只能推测;但尝试使用 . 打开文件encoding='utf-16le'。(如果失败,请编辑您的问题以repr()在文件中包含十六进制转储或二进制字节;另请参阅有关解码错误的问题问题)

于 2020-07-23T11:42:46.107 回答