About open file for Read
Dave Angel
d at davea.name
Mon Dec 10 12:14:18 EST 2012
On 12/10/2012 11:36 AM, moonhkt wrote:
> Hi All
>
> I am new in Python. When using open and then for line in f .
>
> Does it read all the data into f object ? or read line by line ?
>
>
> f=open(file, 'r')
> for line in f:
> if userstring in line:
> print "file: " + os.path.join(root,file)
> break
> f.close()
>
>
> moonhk
open() does not read the whole file into any object. There is buffering
that goes on in the C libraries that open() calls, but that should be
transparent to you for regular files.
When you ask for a line, it'll read enough to fulfill that request, and
maybe some extra that'll get held somewhere in the C runtime library.
You should look into the 'with' statement, to avoid that f.close().
That way the file will be closed, regardless of whether you get an
exception or not.
http://docs.python.org/2/reference/compound_stmts.html#index-15
with open(file,. "r") as f:
for line in f:
etc.
BTW, since you're in version 2.x, you should avoid hiding the builtin
file object. Call it something like file_name, or infile_name.
--
DaveA
More information about the Python-list
mailing list