code: def write(self):
          
          self.log('Writing {0}'.format(self.filename))
          with open(self.filename, 'w') as handle:
              for this_line in self.contents:
                  handle.write(this_line+self.linesep)
          self.changed = False
          return True
docs: write self.contents to self.filename
          self.filename was defined during .read()
  
          There is no self.changed check because we need to let the caller decide whether or not to write. This is
              useful if you want to force an overwrite of a file that might have been changed on disk even if
              self.contents did not change.