Kent Johnson said unto the world upon 2005-02-13 14:04:
Brian van den Broek wrote:

Since you files are quite short, I'd do something like:

<code>
data_file = open(thedata.txt, 'r') # note -- 'r' not r
data = data_file.readlines()       # returns a list of lines

def process(list_of_lines):
    data_points = []
    for line in list_of_lines:
        data_points.append(int(line))
    return data_points

process(data)


This can be done much more simply with a list comprehension using Python's ability to iterate an open file directly:
data_file = open('thedata.txt', 'r') # note -- 'thedata.txt' not thedata.txt :-)

Gah! :-[ Outsmarting myself in public again. (At least I'm good at something :-) )


data_points = [ int(line) for line in data_file ]
>
then process the data with something like
for val in data_points:
  # do something with val
  time.sleep(300)

Alternately (and my preference) the processing could be done in the read loop like this:
data_file = open('thedata.txt', 'r')
for line in data_file:
val = int(line)
# do something with val
time.sleep(300)


Kent

I do get that for the minimal logic I posted, this way is much simpler. But, isn't my way with a separate function more easily extended? (To deal with cases where there is more than just ints on lines, or where the data needs to be similarly processed multiple times, etc.)


I do feel a YAGNI coming on, though :-)

Anyway, thanks for improving my attempt to help.

Best,

Brian vdB
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to