# Reading a single binary file succeeded, reading multiple binary files failed

**URL:** https://discourse.paraview.org/t/reading-a-single-binary-file-succeeded-reading-multiple-binary-files-failed/9497
**Category:** ParaView Support
**Created:** [April 22, 2022, 4:37am UTC](https://discourse.paraview.org/t/reading-a-single-binary-file-succeeded-reading-multiple-binary-files-failed/9497 "2022-04-22T04:37:54Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![wu\_ying](https://discourse.paraview.org/user_avatar/discourse.paraview.org/wu_ying/32/9035_2.png) [@wu\_ying](https://discourse.paraview.org/u/wu_ying)
#### Post date: [April 22, 2022, 4:37am UTC](https://discourse.paraview.org/t/reading-a-single-binary-file-succeeded-reading-multiple-binary-files-failed/9497/1 "2022-04-22T04:37:54Z")

</div>

Reading a single binary file succeeded, reading multiple binary files failed

Traceback (most recent call last):  
File “”, line 20, in   
File “”, line 46, in RequestData  
UnboundLocalError: local variable ‘x’ referenced before assignment  
Error While opening the file!  
Traceback (most recent call last):  
File “”, line 20, in   
File “”, line 46, in RequestData  
UnboundLocalError: local variable ‘x’ referenced before assignment  
Error While opening the file!

```auto
import vtk
outInfo = self.GetOutputInformation(0)
if outInfo.Has(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_TIME_STEP()):
  time = outInfo.Get(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_TIME_STEP())
else:
  time = 0

import numpy as np
import struct
try:
    with open('c:/00yf/dh2/bin-time'+str(time)+'.raw', "rb") as f:
        contents = f.read() 
        bytesnum = int((len(contents) - 4)/3) # 某一个分量占的字节总数，其中减去的4个为换行符
        realnum = int(bytesnum/4) #某一分量的个数  
        numlist = []
        i = 0
        while True:
            if (i+4) <= len(contents):
                bytetoascii = struct.unpack('f', contents[i:i+4])
                
                bytetoasciishort = round(bytetoascii[0], 3)
                
                numlist.append(bytetoasciishort)

                i += 4                

                if (i == bytesnum):
                    i = bytesnum + 2
                elif (i == bytesnum*2 + 2):
                    i = bytesnum*2 + 4

            else:
                break

    x = np.array(numlist[:realnum])
    y = np.array(numlist[realnum:realnum*2])
    z = np.array(numlist[realnum*2:])
except IOError:
    print("Error While opening the file!")

# data = np.genfromtxt(r'D:\test\PointCloud\00yf\dh2\temp.txt', dtype=None, names = None, delimiter=',', unpack = False)

#output.RowData.append(data[:,0] , 'x')
#output.RowData.append(data[:,1] , 'y')
#output.RowData.append(data[:,2] , 'z')
output.RowData.append(x , 'x')
output.RowData.append(y , 'y')
output.RowData.append(z , 'z')

```

```auto
timeSteps = range(10)

outInfo = self.GetOutputInformation(0)

timeRange = [timeSteps[0], timeSteps[-1]]
outInfo.Set(vtk.vtkStreamingDemandDrivenPipeline.TIME_RANGE(), timeRange, 2)
outInfo.Set(vtk.vtkStreamingDemandDrivenPipeline.TIME_STEPS(), timeSteps, len(timeSteps))

```

---

<div class="post-metadata">

### Author: ![wu\_ying](https://discourse.paraview.org/user_avatar/discourse.paraview.org/wu_ying/32/9035_2.png) [@wu\_ying](https://discourse.paraview.org/u/wu_ying)
#### Post date: [April 22, 2022, 4:42am UTC](https://discourse.paraview.org/t/reading-a-single-binary-file-succeeded-reading-multiple-binary-files-failed/9497/2 "2022-04-22T04:42:22Z")

</div>

```auto
import vtk

outInfo = self.GetOutputInformation(0)
if outInfo.Has(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_TIME_STEP()):
  time = outInfo.Get(vtk.vtkStreamingDemandDrivenPipeline.UPDATE_TIME_STEP())
else:
  time = 0

import numpy as np
import struct

try:
    with open(r'c:\00yf\dh2\bin-time'+str(time)+'.raw', "rb") as f:
        contents = f.read()
        
        bytesnum = int((len(contents) - 4)/3) # 某一个分量占的字节总数，其中减去的4个为换行符
        realnum = int(bytesnum/4) #某一分量的个数      

        numlist = []
        i = 0
        while True:
            if (i+4) <= len(contents):
                bytetoascii = struct.unpack('f', contents[i:i+4])
                
                bytetoasciishort = round(bytetoascii[0], 3)
                
                numlist.append(bytetoasciishort)

                i += 4                

                if (i == bytesnum):
                    i = bytesnum + 2
                elif (i == bytesnum*2 + 2):
                    i = bytesnum*2 + 4

            else:
                break

    x = np.array(numlist[:realnum])
    y = np.array(numlist[realnum:realnum*2])
    z = np.array(numlist[realnum*2:])
except IOError:
    print("Error While opening the file!")

# data = np.genfromtxt(r'D:\test\PointCloud\00yf\dh2\temp.txt', dtype=None, names = None, delimiter=',', unpack = False)

#output.RowData.append(data[:,0] , 'x')
#output.RowData.append(data[:,1] , 'y')
#output.RowData.append(data[:,2] , 'z')
output.RowData.append(x , 'x')
output.RowData.append(y , 'y')
output.RowData.append(z , 'z')

```

Error While opening the file!  
Traceback (most recent call last):  
File “”, line 20, in   
File “”, line 53, in RequestData  
UnboundLocalError: local variable ‘x’ referenced before assignment  
Error While opening the file!
