Mr Knight.co.uk
http://mrknight.co.uk/2014/09/file-handling-in-python.html