I am attempting to read a binary file using Python. Someone else has read in the data with R using the following code:

```
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))])

```

With Python, I am trying the following code:

```
import struct

with open('file','rb') as f:
    val = f.read(16)
    while val != '':
        print(struct.unpack('4f', val))
        val = f.read(16) 

```

I am coming to slightly different results. For example, the first row in R returns 4 columns as -999.9, 0, -999.0, 0. Python returns -999.0 for all four columns (images below).

Python output:
[![enter image description here](https://i.stack.imgur.com/sfIsd.png)](https://i.stack.imgur.com/sfIsd.png)

R output:
[![enter image description here](https://i.stack.imgur.com/hrDCJ.png)](https://i.stack.imgur.com/hrDCJ.png)

I know that they are slicing by the length of the file with some of the `[]` code, but I do not know how exactly to do this in Python, nor do I understand quite why they do this. Basically, I want to recreate what R is doing in Python.

I can provide more of either code base if needed. I did not want to overwhelm with code that was not necessary.