Can Readlines() go to next line after a Tab

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Tue Jun 26 21:36:23 EDT 2007


En Tue, 26 Jun 2007 22:16:56 -0300, <tim at preservedwords.com> escribió:

> I have a module based app that can load many modules at startup. The  
> modules are text based with a '\t' separating the keyword from the  
> definition. The app reads each module to extract the keywords, but  
> because readlines() must read to the end of the current line to get to  
> the next, the module loading is slow.
>
> Is there a way to have readlines() go to the next line when it finds a  
> tab '\t' instead of a newline '\n'?

If the file is big, the very usage of readlines() slows the process. It  
has to read the entire file into memory.
I'd use something like this instead:

for line in def_file:
     tabpos = line.find("\t")
     if tabpos>0: # >= if an empty keyword is allowed
         keyword = line[:tabpos]
     ...

-- 
Gabriel Genellina



More information about the Python-list mailing list