Blocking readline() Call?

Peter Hansen peter at engcorp.com
Mon Nov 10 15:15:57 EST 2003


Scott Brady Drummonds wrote:
> 
> I'm just figuring Python out but have become stalled with the following
> snippit of code:  For some reason, the program stalls after the "read line:
> x" for the last line.  The 'done reading cycle map' message is never
> generated:
> 
>   while 1:
>     line = file.readline()
>     if line == '':
>       continue

Correct this: you want "break", not continue.

>     data = line.strip().split(':')
>     cycleMap[int(data[0])] = int(data[1])
>     i = i + 1
>     print ('read line %d' % i)
>   file.close()
>   print ('done reading cycle map')
> 
> I thought readline() was supposed to be non-blocking.  Have I misunderstood
> something?

Yes, the problem wasn't where you thought it was.  A well-placed print
statement or two would have showed you that readline was being called
repeatedly, not blocking.

-Peter




More information about the Python-list mailing list