Hello all,
I am writing a program to take a data file, divide it up into columns and print the information back with headers. The data files looks like this
0.0 -3093.44908 -3084.59762 387.64329 26.38518 0.3902434E+00 -0.6024320E-04 0.4529416E-05
1.0 -3094.09209 -3084.52987 391.42288 105.55994 0.3889897E+00 -0.2290866E-03 0.4187074E-03
2.0 -3094.59358 -3084.88826 373.64911 173.44885 0.3862430E+00 -0.4953443E-03 0.2383621E-02
etc…
10.0 ...
So I wrote the program included below and it only prints the last line of the file.
Timestep PE 10.0 -3091.80609
I have one question. Do I need to put ts and pe into a list before I print then to screen or I am just missing something. Thanks.
You should print the header before the loop, and the contents inside the loop. So: print """
Timestep PE""" for line in cols: ts = line[0] # print line[0] pe = line[1] # print line[1]
# The next line is indented so it is included in the loop: print "%s %s " % (ts,pe)
You probably will want to set the field width in the print format so the columns all line up, something like this (just guessing on the widths):
print "%10s %10" % (ts,pe)
You might be interested in this recipe which does a very slick job of pretty-printing a table: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/267662
Kent
Ara
import string
inp = open("fort.44","r") all_file = inp.readlines() inp.close()
outp = open("out.txt","w")
cols = map(string.split,all_file) ##print cols
Data = {} for line in cols: ts = line[0] # print line[0] pe = line[1] # print line[1]
print """
Timestep PE""" print "%s %s " % (ts,pe)
outp.close()
------------------------------------------------------------------------
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor