Why is x not defined outside the function? Is return x placed wrong?
def find():
x else:
find()
Your function never returns anything. Check this, with some added error handling for no end of metadata detection
def find():
data=file('file.dat')
x=0
for line in data:
if 'metaend' in line:
return x
x += 1
raise Exception('heeey no end of metadata')
By the way, python has a very nice function for a counter in a loop:
def find():
data=file('file.dat')
for counter, line in enumerate(data):
if 'metaend' in line:
return counter
raise Exception('heeey no end of metadata')
breakimmediately exits the loop, so the statement after it is never executed.return, Python returnsNone