About open file for Read

Dave Angel d at davea.name
Mon Dec 10 18:14:18 CET 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