我正在尝试使用 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输出:
R输出:
我知道他们正在用一些[]
代码按文件的长度进行切片,但是我不知道如何在Python中精确地做到这一点,也不知道他们为什么这样做。基本上,我想重新创建R在Python中所做的事情。
如果需要,我可以提供更多的代码库。我不想淹没不必要的代码。
相关分类