R readBin 与 Python 结构

我正在尝试使用 Python 读取二进制文件。其他人使用以下代码使用 R 读入数据:


x <- readBin(webpage, numeric(), n=6e8, size = 4, endian = "little")

      myPoints <- data.frame("tmax" = x[1:(length(x)/4)],

                             "nmax" = x[(length(x)/4 + 1):(2*(length(x)/4))],

                             "tmin" = x[(2*length(x)/4 + 1):(3*(length(x)/4))],

                             "nmin" = x[(3*length(x)/4 + 1):(length(x))])

使用 Python,我正在尝试以下代码:


import struct


with open('file','rb') as f:

    val = f.read(16)

    while val != '':

        print(struct.unpack('4f', val))

        val = f.read(16) 

我得出的结果略有不同。例如,R中的第一行返回4列,分别为-999.9、0,-999.0、0。Python对所有四列返回-999.0(下图)。

Python输出:http://img1.mukewang.com/60b5fa4d0001534e02270064.jpg

R输出:http://img1.mukewang.com/60b5fa5f00018f5701850116.jpg

我知道他们正在用一些[]代码按文件的长度进行切片,但是我不知道如何在Python中精确地做到这一点,也不知道他们为什么这样做。基本上,我想重新创建R在Python中所做的事情。

如果需要,我可以提供更多的代码库。我不想淹没不必要的代码。


潇湘沐
浏览 241回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python