Table Of Contents

Previous topic

Tutorials

Next topic

An introduction to Matplotlib

This Page

Writing files in Python

Pure Python

The most basic way to write files in Python is to simply open a file with write access:

f = open('file.txt', 'wb')

and to then call the write method to write to the file:

f.write("Hello World")

Line returns have to be explicitly included using \n:

f.write("Line 1\n")
f.write("line 2\n")

And files should be closed with:

f.close()

The best way to write out variables with this technique is to use string formatting which is described in more detail here. The basic command to format variables into a string is:

format % variables

where format is a string containing the format statements and variables is a tuple of the values, for example:

>>> print "%s %5.2f %10.4e" % ("name", 3.4, 1.e-10)
name  3.40 1.0000e-10

We can use this when writing out files, so if we have two lists or arrays of values a and b we can do:

a = [1,2,3,4,5]
b = [2,6,4,3,2]

f = open('file.txt', 'wb')
for i in range(len(a)):
    f.write("%i %5.2f\n" % (a[i], b[i]))
f.close()

which will produce a file containing:

1  2.00
2  6.00
3  4.00
4  3.00
5  2.00

Numpy

Numpy provides a function called savetxt that makes it easy to write out arrays to files. Given two lists or arrays a and b as above, one can simply do:

import numpy as np
a = [1,2,3,4,5]
b = [2,6,4,3,2]
np.savetxt('file_numpy.txt', zip(a, b), fmt="%i %5.2f")

which produces exactly the same output as above and avoids the for loop.