how long a Str can be used in this python code segment?

Stefan Behnel stefan_ml at behnel.de
Mon Feb 1 10:45:28 CET 2010


Stephen.Wu, 01.02.2010 10:17:
> tmp=file.read() (very huge file)
> if targetStr in tmp:
>     print "find it"
> else:
>     print "not find"
> file.close()
> 
> I checked if file.read() is huge to some extend, it doesn't work, but
> could any give me some certain information on this prolbem?

Others have already pointed out that reading the entire file into memory is
not a good idea. Try reading chunks repeatedly instead.

As it appears that you simply try to find out if a file contains a specific
byte sequence, you might find acora interesting:

http://pypi.python.org/pypi/acora

Also note that there are usually platform optimised tools available to
search content in files, e.g. grep. It's basically impossible to beat their
raw speed even with hand-tuned Python code, so running the right tool using
the subprocess module might be a solution.

Stefan



More information about the Python-list mailing list