David Craig wrote:
I have been trying to write them to a text file but it is difficult to
organise them into rows and columns with appropriate spacing to make it
readable. I would like something like,
Stations Station1 Station2
Station1 0.0 33.57654
Station2 33.57654 0.0
[...]
I've tried adding spaces but to some of the values (i.e. '0.0
') but this is very messy.
Try using string formatting strings. E.g.:
print "%s %8.2f %8.2f" % ("station1", 0, 4)
will produce this output:
station1 0.00 4.00
Naturally you don't have to pass the resultant string to print. You can store
it in a variable, and write it to a file:
line = "%s %8.2f %8.2f" % ("station1", 0, 4)
myfile.write(line + '\n')
The format string codes cover a lot of options. Each code starts with a %
sign, and ends with a letter s, d, f, and a few others.
%s string
%d decimal number
%f floating point number
%% use a literal percentage sign
plus others
Inside the format target, you can add optional terms for the field width,
number of decimal points, etc. A few examples:
%8.2f Pad the number to a total width of 8 (or more if necessary),
using two figures after the decimal place. The number is
right-justified and padded on the left with spaces.
%-4.1f Pad the number to a total width of 4 (or more if necessary),
using one figure after the decimal place. The number is
left-justified and padded on the right with spaces.
Lots more options here:
http://docs.python.org/library/stdtypes.html#string-formatting-operations
Alternatively, if you have Python 2.6 or newer, you can use the format method:
print "{0} {1:8.2f} {2:8.2f}".format("station1", 0, 4)
will produce this output:
station1 0.00 4.00
See here for more options:
http://docs.python.org/library/string.html#string-formatting
--
Steven
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor