使用shutil模块
Python 启用 了shutil 模块 ,它具有复制文件的高级方法。它属于Python的标准工具模块。 这个模块支持的所有方法都在下面提到。
- 使用copyfile()
- 使用copy()
- 使用copy2()
- 使用copyfileobject()
让我们详细讨论一下这些方法中的每一个。
- 使用copyfile()。
该方法将源文件中的所有内容复制到目标文件中。它吸收了以下参数。
src_file 是一个字符串,代表源文件的路径。
dest_file是一个 字符串,代表目标文件的路径。
follow_symlinks 是一个可选的参数,默认情况下被设置为布尔值 True ,如果它被设置为 False ,并且源文件是一个符号链接,那么将创建一个符号链接,而不是将内容复制到一个新文件。
* 指定这里的所有参数都是仅有关键字的参数,这里是 follow_symlinks。
**注意:**象征性链接 或 符号链接 是一个术语,指任何包含以绝对或相对路径形式引用另一个文件或目录的文件。
在这里,我们尝试从名为 source_file.txt的源文件复制内容 到目的地文件 destination_file.txt。
在这个方法中,目标文件必须是可写的,并且名称不应该与源文件相同,否则会引发 SameFileError 异常。如果目标文件已经存在,那么它将被新复制的文件取代。
- 使用copy()。
这个方法和上面的方法很相似。但是这里增加了一个额外的功能,即 从源文件中的 文件权限 也被复制到目的地。在大多数编程语言中,复制文件权限是一项无关紧要的任务,所以这是一个很好的功能。其语法与 copyfile() 方法 类似 。
- 使用copy2()。
这个方法的工作原理与 copy() 方法类似 ,也有类似的语法。
它执行了一个额外的任务,即它也保留了源文件的 元数据。 例如,源文件的创建日期,等等。
注:一个文件的元数据是关于一个文件的额外信息,它被嵌入到文件中或与文件相关。元数据不是实际的文件或照片本身,它是关于它的信息,例如,文件的名称、缩略图或其创建日期。
- 使用copyfileobject()。
这个方法从源文件的当前位置将内容复制到目标文件中,也就是说,当你从源文件对象中读取数据时,你停止读取的位置,就是 copyfileobj()方法 开始复制的位置 。
这个 **copyfileobject()**方法的语法 是
src_file_object和dest_file_object与上面提到的src_file和dest_file参数类似,但不同的是,它们指的是对象。
length 参数是可选的,它代表 缓冲区的大小。缓冲区大小 是指在复制过程中在内存中使用/保留的字节数。当我们复制大文件时,这个参数有很大的帮助,因为它可以加快复制过程,确保有效地使用内存。
The postHow can a file be copied? appeared first oni2tutorials.