Python如何复制一个文件?

93 阅读3分钟

使用shutil模块

Python 启用 了shutil 模块 ,它具有复制文件的高级方法。它属于Python的标准工具模块。 这个模块支持的所有方法都在下面提到。

  • 使用copyfile()
  • 使用copy()
  • 使用copy2()
  • 使用copyfileobject()

让我们详细讨论一下这些方法中的每一个。

  1. 使用copyfile()。

该方法将源文件中的所有内容复制到目标文件中。它吸收了以下参数。

src_file 是一个字符串,代表源文件的路径。

dest_file是一个 字符串,代表目标文件的路径。

follow_symlinks 是一个可选的参数,默认情况下被设置为布尔值 True ,如果它被设置为 False ,并且源文件是一个符号链接,那么将创建一个符号链接,而不是将内容复制到一个新文件。

* 指定这里的所有参数都是仅有关键字的参数,这里是 follow_symlinks

**注意:**象征性链接符号链接 是一个术语,指任何包含以绝对或相对路径形式引用另一个文件或目录的文件。

在这里,我们尝试从名为 source_file.txt的源文件复制内容 到目的地文件 destination_file.txt。

在这个方法中,目标文件必须是可写的,并且名称不应该与源文件相同,否则会引发 SameFileError 异常。如果目标文件已经存在,那么它将被新复制的文件取代。

  1. 使用copy()。

这个方法和上面的方法很相似。但是这里增加了一个额外的功能,即 从源文件中的 文件权限 也被复制到目的地。在大多数编程语言中,复制文件权限是一项无关紧要的任务,所以这是一个很好的功能。其语法与 copyfile() 方法 类似 。

  1. 使用copy2()。

这个方法的工作原理与 copy() 方法类似 ,也有类似的语法。

它执行了一个额外的任务,即它也保留了源文件的 元数据。 例如,源文件的创建日期,等等。

注:一个文件的元数据是关于一个文件的额外信息,它被嵌入到文件中或与文件相关。元数据不是实际的文件或照片本身,它是关于它的信息,例如,文件的名称、缩略图或其创建日期。

  1. 使用copyfileobject()。

这个方法从源文件的当前位置将内容复制到目标文件中,也就是说,当你从源文件对象中读取数据时,你停止读取的位置,就是 copyfileobj()方法 开始复制的位置 。

这个 **copyfileobject()**方法的语法 是

src_file_object和dest_file_object与上面提到的src_file和dest_file参数类似,但不同的是,它们指的是对象。

length 参数是可选的,它代表 缓冲区的大小。缓冲区大小 是指在复制过程中在内存中使用/保留的字节数。当我们复制大文件时,这个参数有很大的帮助,因为它可以加快复制过程,确保有效地使用内存。

The postHow can a file be copied? appeared first oni2tutorials.