在Python中读取.bin或.dat文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中读取.bin或.dat文件相关的知识,希望对你有一定的参考价值。

我正在生成一个二进制文件。我用hexdump打开它,它看起来像enter image description here下面

但是当我尝试使用file = open("lfsr.bin","rb") data = file.read(10) print data在python中读取此文件时

打印空白/空白但如果我这样做

print repr(data)

它打印

'\x00\x00\x00\x00\x01\x00\x01\x01\x01\x01'

如何以1023块的形式读取此文件?该文件实际上是PRN生成器代码的o / p。

答案

你可以看出文件中的前10个字节(或者所有字节,从图像看来)都是0x000x01。在ASCII中,那些都是不可打印的字符,所以如果你试图将它们作为一个字符串进行print,你将看不到任何东西 - 但是字节被读取。使用repr打印它是有效的,因为repr为您提供了“对象的字符串表示”,因此您可以看到其中的实际字节。

按照建议,只需要data = file.read(1023)从文件中读取1023个字节的块。

注意:这在Python 3中有点不那么令人困惑,其中从二进制文件读取的数据作为bytes对象返回,而str是具有解码字符串表示的不同类型。在这种情况下,打印data会显示类似于你从Python中的repr得到的东西,因为bytes对象不被认为代表文本,所以即使它包含不可打印的字符,也最好显示它们的内容。

以上是关于在Python中读取.bin或.dat文件的主要内容,如果未能解决你的问题,请参考以下文章

python将txt导入到excel

python 怎样或读取一个文件的最后一行

在python中如何从二进制文件中读取信息

python 读取大文件,按照字节读取

如何在 Python 中使用 SVM 实现 .dat 文件进行手写识别

python3.3不自带的模块或工具包 下载以后要怎么处理才能在开发环境中调用 (比如放到pyth