#!/usr/bin/env python import os def read_file(name): """Return all the data from a file.""" f = open(name) data = f.read() f.close() return data def write_file(name, data): """Safely write data to a file, by writing to a temporary file then renaming that over the original file.""" newname = name + ".new-" + str(os.getpid()) f = open(newname, "w") f.write(data) f.close() os.rename(newname, name) if __name__ == "__main__": t = "myfile" d = "hello, world!" write_file(t, d) write_file(t, d) assert read_file(t) == d os.unlink(t) print "test ok"