[Tutor] how to read from a txt file

Kent Johnson kent37 at tds.net
Mon Feb 14 02:02:06 CET 2005


jrlen balane wrote:
> and this line:
>      data_points.append(int(line))
> 
> this would turn the string back to an integer, am i right?

Yes.

> 
> and on this one:
>     data_points = [ int(line) for line in data_file ]
> 
> this did not use any read(), is this already equal to readline()? so
> this would already store all the data in the txt file to
> data_points[], am i right?

Yes. A handy feature of Python is that a file object is iterable - you can use a for loop or list 
comprehension to iterate over the lines of the file without an explicit readline(). So this:
   data_points = [ int(line) for line in data_file ]

is roughly equivalent to this (without the list comprehension):
   data_points = []
   for line in data_file:
     data_points.append(int(line))

or this (with explicit readline()):
   data_points = []
   while True:
     line = data_file.readline()
     if not line:
       break
     data_points.append(int(line))

only the list comprehension is much more concise and, when you get used to it, much clearer.

> 
> thank you guys! ei, you two are not competing, are you? anyway, hope
> its a friendly one. for the benifit of all those newbie like me,
> hehehe.

Definitely friendly.

Kent




More information about the Tutor mailing list