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 -- http://mail.python.org/mailman/listinfo/python-list