如何使用 Python 将文件从一个文件夹复制到另一个文件夹?


文件是存储在计算机上的信息或数据的集合。您已经熟悉几种文件类型,例如音频、视频和文本文件。

文本文件和二进制文件是我们通常将文件划分的两大类。文本文件包含简单的文本,而二进制数据只能被计算机读取。

一组文件和子目录称为目录或文件夹。子目录是在目录内存在的目录。许多操作系统功能可以自动执行。

使用 Python 进行文件操作

Python 提供了多种方法来对底层操作系统的文件和文件夹执行操作。

  • Python 中的OS 模块 具有添加和删除文件夹、检索其内容、更改目录、查找当前目录等功能。导入此模块,我们将使用它的listdir() 方法 来获取文件。

  • 类似地,shutil 模块提供了许多用于处理文件和相关集合的操作的功能。它允许用户复制和删除文件。您可以使用此模块的 shutil.copy()shutil.copy2()shutil.copytree() 方法将一个文件夹的内容复制到另一个文件夹。

您可以通过导入其各自的模块,如下所示,将这些函数包含在您的文件中:

import shutil shutil.submodule_name(arguments passed)

使用 shutil.copy() 操作

使用此函数,源文件的文本或内容将复制到目标文件或目录。此外,文件的权限模式将被保留,但文件元数据(例如“创建日期”、“修改日期”等)不会被保留。

语法

shutil.copy() 方法的语法如下:

shutil.copy(origin, target)

其中,

  • 源 - 包含源文件位置或路径的字符串

  • 目标 - 包含目标文件位置或路径的字符串。

示例

以下是如何使用 shutil.copy() 操作将文件从一个文件夹复制到另一个文件夹的示例

# importing the modules import os import shutil # Providing the folder path origin = 'C:\Users\Lenovo\Downloads\Works' target = 'C:\Users\Lenovo\Downloads\Work TP' # Fetching the list of all the files files = os.listdir(origin) # Fetching all the files to directory for file_name in files: shutil.copy(origin+file_name, target+file_name) print("Files are copied successfully")

输出

以下是上述查询的输出

Files are copied successfully

注意 - 可以使用相对路径和绝对路径来复制文件。路径指示文件在磁盘上的位置

绝对路径包含查找文件所需的整个目录列表。例如,查找 samples.txt 的绝对路径为:C:\Users\Lenovo\Downloads\Works

在这里,我们提供了文件源和目标的文件夹路径。

使用 shutil.copy2() 操作

首先,此函数与copy()完全相同,区别在于它会跟踪源文件的元数据。

此程序的执行与 shutil.copy() 完全相同。唯一的区别是,在将文件提取到目录时,我们使用 shutil.copy2() 而不是 shutil.copy()

shutil.copy2(origin+file_name, target+file_name)

语法

shutil.copy2() 方法的语法如下:

shutil.copy2(origin, target)

源和目标值与上面定义的相同。

此代码中的 copy2() 函数除了 copy() 之外还执行一个额外的操作,即保留元数据。

使用 shutil.copytree() 方法

此函数将文件及其包含的任何子目录从一个目录移动到另一个目录。

这意味着源和目标都包含文件。字符串必须包含两个参数的名称。

语法

shutil.copytree() 方法的语法如下:

shutil.copytree(origin, target)

源和目标值与上面定义的相同。

示例

以下是如何使用 shutil.copytree() 操作将文件从一个文件夹复制到另一个文件夹的示例

# importing the module import shutil # Fetching all the files to directory shutil.copytree('C:\Users\Lenovo\Downloads\Works','C:\Users\Lenovo\Downloads\Work TP\/newfolder') print("File Copied Successfully")

输出

以下是上述查询的输出

File Copied Successfully

作为输出,我们将能够看到执行后所做的更改,即“Works”文件夹被复制到“Works TP”文件夹,并使用代码中分配的“newfolder”名称,其中包含“Works”文件夹中的所有文件。

为了获得该文件的副本,我们在代码中包含了 copytree() 函数。

更新于:2023年8月24日

44K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告