I don't understand why you wrote this as recursion when it's clearly an iterative process (reading a file block by block, as I understand it).
def get_data(self):
for count in range(self.files/self.block_length):
self.position = self.hfile.tell()/self.sizeof_data
try:
self.iq = scipy.fromfile(self.hfile, dtype=self.datatype, count=self.block_length)
except MemoryError:
print "End of File"
self.iq_fft = self.dofft(self.iq)
x = self.iq_fft
maximum = np.argmax(x)
average = np.mean(x)
print "\nAverage Value: ", average
self.counter += 1
print "\nCOUNT: ", count
raise SystemExit