'charmap'编解码器无法解码位置5697的字节0x9d:字符映射到<undefined>

时间:2019-07-11 10:21:28

标签: python pandas

为此看到了其他线程,常见的解决方案是在打开/写入文件时显式指定编码器(UTF-8)。另一个是忽略错误。我都尝试过,但是都没用。

1 个答案:

答案 0 :(得分:0)

文件应包含除以UTF-8或latin1编码的文本以外的其他内容,因为单独的0x9d既不是有效的UTF-8,也不是latin1。

但是可以是许多其他编码。例如,可以为CP861,在这种情况下为Ø。但是我随机拿了CP861,它可以是任何其他具有0x9d含义的编码。

这也可能是您文件中的错误,或者是文件中包含文本以外的内容(我敢打赌在位置5697之前它会失败)。

如果您不介意向我们提供更多信息,可能会有所帮助,也许:

with open(source, "rb") as from_A:
    print(from_A.read()[5697-10, 5697+10])

此外,如果您确实不需要文件的内容,则可以使用b打开标志来跳过解码并重新编码:

with open(source, mode='rb') as from_A, open(destination, mode='wb') as to_A:

如果您只是想复制文件,则可以使用shutil

shutil.copyfile(source, destination)