代码之家  ›  专栏  ›  技术社区  ›  Matt

如何复制文件

  •  3706
  • Matt  · 技术社区  · 17 年前

    如何在Python中复制文件?

    21 回复  |  直到 3 年前
        1
  •  19
  •   Saaru Lindestøkke    3 年前

    shutil 有很多方法可以使用。其中之一是:

    import shutil
    
    shutil.copyfile(src, dst)
    
    # 2nd option
    shutil.copy(src, dst)  # dst can be a folder; use shutil.copy2() to preserve timestamp
    
    • 复制名为的文件的内容 src 到名为的文件 dst 两者都有 src公司 夏令时 需要是文件的完整文件名,包括路径。
    • 目标位置必须可写;否则,a IOError 将引发异常。
    • 如果 夏令时 已存在,将被替换。
    • 此功能无法复制字符或块设备和管道等特殊文件。
    • 具有 copy , src公司 夏令时 路径名是否为 str s

    又一个 关机 看的方法是 shutil.copy2() 它与之相似,但保留了更多的元数据(例如时间戳)。

    如果你使用 os.path 操作,使用 复制 而不是 copyfile . 复制文件 将只接受字符串。

        2
  •  1
  •   JCE2423    3 年前
    功能 副本
    元数据
    副本
    许可
    使用文件对象 目的地
    可能是目录
    shutil.copy 是的 是的
    shutil.copyfile
    shutil.copy2 是的 是的 是的
    shutil.copyfileobj 是的
        3
  •  0
  •   Tcll    3 年前

    copy2(src,dst) 通常比 copyfile(src,dst) 因为:

    • 它允许 dst 成为a 目录 (而不是完整的目标文件名),在这种情况下 basename 属于的 src 用于创建新文件;
    • 它在文件元数据中保留了原始的修改和访问信息(mtime和atime)(但是,这会带来轻微的开销)。

    下面是一个简短的例子:

    import shutil
    shutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext') # complete target filename given
    shutil.copy2('/src/file.ext', '/dst/dir') # target filename is /dst/dir/file.ext