我在Jupyter中执行了以下代码,试图处理名为 bfile 的二进制文件。但是,当我在Jupyter中打开文件时,我收到了错误消息,如下图所示。当我使用记事本打开文件时,我收到了一堆杂乱的字符。有人打电话求助(请用语言表达,我在日常工作中不熟悉UTF,Unicode等编码问题)?
bdata = bytes(range(0, 256))
with open('bfile', 'wb') as fin:
fin.write(bdata)
with open('bfile', 'rb') as fin:
fin.seek(-1, 2)
fin.tell()
错误消息
错误! Y:\ Desktop \ bfile不是UTF-8编码的
保存已禁用。
有关详细信息,请参阅控制台。
答案 0 :(得分:1)
您似乎尝试在Jupyter中打开刚刚编写的二进制文件(仅包含二进制值0到255)。这不是Jupyter的工作原理:它应该用那个(随机)二进制文件做什么?
Jupyter可以打开例如笔记本文件。它也可能会打开纯文本文件,甚至是图像文件,因为它可以将它们作为文本读取,或者将文件(图像)的处理传递给文件浏览器。 Jupyter不知道如何处理二进制文件:它不是一个已知的规范。
相反,如果您想在Python 中使用二进制数据,那么请在Python中读取该文件。实际上,您的代码示例已经显示您正在执行此操作,因此我不确定您为什么还要尝试在Jupyter(或记事本)中打开二进制文件。请注意,记事本会尝试最佳它可以与您的二进制文件一起显示,并在系统上显示0到255的ASCII值。因此,您可以看到已知字符的范围。它不会显示0到255的整数值,但是假定某些编码并根据该编码将这些值转换为字符。可能不是ASCII,而是一些类似Windows ASCII的编码。)