docs: def dump(data, abspath, pk_protocol=py23.pk_protocol,
           overwrite=False, enable_verbose=True):
      """Dump picklable object to file.
      Provides multiple choice to customize the behavior.
  
      :param data: picklable python object.
      :type data: dict or list
  
      :param abspath: ``save as`` path, file extension has to be ``.pickle`` or ``.gz``
          (for compressed Pickle)
      :type abspath: string
  
      :param pk_protocol: default = your python version, use 2, to make a
          py2.x/3.x compatible pickle file. But 3 is faster.
      :type pk_protocol: int
  
      :param overwrite: default ``False``, If ``True``, when you dump to existing
          file, it silently overwrite it. If ``False``, an alert message is shown.
          Default setting ``False`` is to prevent overwrite file by mistake.
      :type overwrite: boolean
  
      :param enable_verbose: default True, help-message-display trigger.
      :type enable_verbose: boolean
  
      Usage::
  
          >>> from dataIO import pk
          >>> data = {"a": 1, "b": 2}
          >>> dump(data, "test.pickle", overwrite=True)
          Dump to `test.pickle` ...
              Complete! Elapse 0.002432 sec
  
      **中文文档**
  
      将Python中可被序列化的"字典", "列表"以及他们的组合, 按照Json的编码方式写入文件
      文件
  
      参数列表
  
      :param data: 可Pickle化的Python对象
      :type data: ``字典`` 或 ``列表``
  
      :param abspath: Pickle文件绝对路径, 扩展名需为 ``.pickle`` 或 ``.gz``, 其中 ``.gz``
        是被压缩后的Pickle文件
      :type abspath: ``字符串``
  
      :param pk_protocol: 默认值为你的Python大版本号, 使用2可以使得Python2/3都能
        兼容你的Pickle文件。不过Python3的速度更快。
      :type pk_protocol: int
  
      :param overwrite: 默认 ``False``, 当为``True``时, 如果写入路径已经存在, 则会
        自动覆盖原文件。而为``False``时, 则会打印警告文件, 防止误操作覆盖源文件。
      :type overwrite: "布尔值"
  
      :param enable_verbose: 默认 ``True``, 信息提示的开关, 批处理时建议关闭
      :type enable_verbose: ``布尔值``
      """
      prt("\nDump to '%s' ..." % abspath, enable_verbose)
  
      abspath = lower_ext(str(abspath))
      is_pickle = is_pickle_file(abspath)
  
      if os.path.exists(abspath):
          if not overwrite:  # 存在, 并且overwrite=False
              prt("    Stop! File exists and overwrite is not allowed",
                  enable_verbose)
              return
  
      st = time.clock()
      content = pickle.dumps(data, pk_protocol)
      if is_pickle:
          textfile.writebytes(content, abspath)
      else:
          compress.write_gzip(content, abspath)
  
      prt("    Complete! Elapse %.6f sec." % (time.clock() - st), enable_verbose)