added close() method, fixed bug for -1 sized steps
This commit is contained in:
parent
7b8ed3e9af
commit
d4aae06f34
|
|
@ -64,11 +64,11 @@ class UCF:
|
|||
self.__timeStep[istep] = self.__currentStepTime
|
||||
self.__posStep[istep] = self.__fileID.tell()
|
||||
self.__numSetPerStep[istep] = self.__currentStepNumSet
|
||||
istep = istep+1
|
||||
if self.__currentStepSize==-1:
|
||||
break
|
||||
else:
|
||||
self.__fileID.seek(self.__currentStepSize,1)
|
||||
istep = istep+1
|
||||
nstep = istep
|
||||
|
||||
# Truncate buffered arrays
|
||||
|
|
@ -83,6 +83,11 @@ class UCF:
|
|||
self.NumTimestep = nstep;
|
||||
self.__isFileHeaderWritten = True;
|
||||
self.__isStepHeaderWritten = True;
|
||||
|
||||
def close(self):
|
||||
"""Closes input file object"""
|
||||
self.__fileID.close()
|
||||
self.__init__
|
||||
|
||||
def initBuffer(self,rank=0,rankijk=(0,0,0),ftype=1999):
|
||||
"""Initialize a buffer to generate a new UCF file."""
|
||||
|
|
@ -244,6 +249,8 @@ class UCF:
|
|||
|
||||
def readSet(self,step=1,dset=1,memmap=False):
|
||||
"""Read a dataset from input file. If 'memmap' is activated, the file will only be read partially on demand."""
|
||||
if not self.__inputAvailable:
|
||||
raise IOError('No input file available')
|
||||
self.__fileID.seek(self.__findSet(step,dset),0)
|
||||
self.__readHeaderSet();
|
||||
params = self.__currentSetParams
|
||||
|
|
@ -269,14 +276,14 @@ class UCF:
|
|||
if currentMagic==self.__magicFile:
|
||||
break
|
||||
if currentMagic!=self.__magicFile:
|
||||
raise ValueError("Magic mismatch: invalid file header. %l" % currentMagic)
|
||||
raise ValueError('Magic mismatch: invalid file header. {}'.format(currentMagic))
|
||||
self.Endian = fmt
|
||||
# Read header
|
||||
self.__fileID.seek(self.__fileBeg,0);
|
||||
buff = self.__fileID.read(self.__nHeaderFile*8)
|
||||
header = struct.unpack("%s%dq"%(self.Endian,8),buff)
|
||||
if self.Debug:
|
||||
print("Read the following file header at %d bytes" % 0,file=sys.stderr)
|
||||
print('Read the following file header at 0 bytes',file=sys.stderr)
|
||||
print(header,file=sys.stderr)
|
||||
# Parse version
|
||||
self.__versionMajor = np.floor(header[1]/self.__factorMajor)
|
||||
|
|
|
|||
Loading…
Reference in New Issue