code: def write(self, offset, data):
          
          writefile = getattr(self, 'writefile', None)
          if writefile is None:
              return SFTP_OP_UNSUPPORTED
          try:
              # in append mode, don't care about seeking
              if (self.__flags & os.O_APPEND) == 0:
                  if self.__tell is None:
                      self.__tell = writefile.tell()
                  if offset != self.__tell:
                      writefile.seek(offset)
                      self.__tell = offset
              writefile.write(data)
              writefile.flush()
          except IOError, e:
              self.__tell = None
              return SFTPServer.convert_errno(e.errno)
          if self.__tell is not None:
              self.__tell += len(data)
          return SFTP_OK
docs: Write C{data} into this file at position C{offset}.  Extending the
          file past its original end is expected.  Unlike python's normal
          C{write()} methods, this method cannot do a partial write: it must
          write all of C{data} or else return an error.
  
          The default implementation checks for an attribute on C{self} named
          C{writefile}, and if present, performs the write operation on the
          python file-like object found there.  The attribute is named
          differently from C{readfile} to make it easy to implement read-only
          (or write-only) files, but if both attributes are present, they should
          refer to the same file.
          
          @param offset: position in the file to start reading from.
          @type offset: int or long
          @param data: data to write into the file.
          @type data: str
          @return: an SFTP error code like L{SFTP_OK}.