[Tutor] rows and columns
Charlie Clark
charlie@begeistert.org
Sun, 10 Feb 2002 12:35:13 -0500
>If we read in the file and somehow process it to get something like:
>
>[ [foo 1.0 5.0 10.0]
> [foo2 1.0 5.0 15.0]
> [foo 2.5 3.0 9.00]
> [foo 3.1 5.5 12.00]
> [foo3 5.0 1.25 7.00] ]
>
>That is, a list of columns, then the problem should become a little
>easier. Here's a function that might do this:
>
>###
>def readRowsAndColumns(filename):
> f =3D open(filename)
> rows =3D []
> for line in f.readlines():
> columns =3D line.split()
> rows.append(columns)
> return rows
>###
My guess is you're wanting to write the changed lines back out into a
file. If you don't need to that you might think about storing the data
in a more flexible form such as a list or dictionary or a class which
you can save to disk using pickle.
def readRowsAndColumns(filename):
f =3D open(filename)
out =3D open("output=5Ffile.txt", "w")
rows =3D []
for line in f.readlines():
columns =3D line.split()
"""convert the second value in each row to a number, add 0.5 to it
and turn back to a string"""
columns[1] =3D str(float(columns[1] + 0.5))
out.write(" ".join(columns) + "\n")
out.close()
print "finished"
Putting the change function inside like this is not usually the way to
do things but fine for one of situations.
Charlie