code: def WriteSymlink(self, src_arcname, dst_arcname):
      
      # Inspired by:
      # http://www.mail-archive.com/python-list@python.org/msg34223.html
  
      if not self._stream:
        raise ArchiveAlreadyClosedError(
            "Attempting to write to a ZIP archive that was already closed.")
  
      src_arcname = SmartStr(src_arcname)
      dst_arcname = SmartStr(dst_arcname)
  
      zinfo = zipfile.ZipInfo(dst_arcname)
      # This marks a symlink.
      zinfo.external_attr = (0o644 | 0o120000) << 16
      # This marks create_system as UNIX.
      zinfo.create_system = 3
  
      # This fills the ASi UNIX extra field, see:
      # http://www.opensource.apple.com/source/zip/zip-6/unzip/unzip/proginfo/extra.fld
      zinfo.extra = struct.pack(
          "<HHIHIHHs",
          0x756e,
          len(src_arcname) + 14,
          0,  # CRC-32 of the remaining data
          0o120000,  # file permissions
          0,  # target file size
          0,  # user ID
          0,  # group ID
          src_arcname)
  
      self._zip_fd.writestr(zinfo, src_arcname)
  
      return self._stream.GetValueAndReset()
docs: Writes a symlink into the archive.