如何使用Python将文件从一个文件夹复制到另一个文件夹?
文件是存储在计算机上的信息或数据的集合。您已经熟悉几种文件类型,例如音频、视频和文本文件。
我们通常将文件分为文本文件和二进制文件两个类别。简单文本包含在文本文件中,而二进制数据只能由计算机读取。
一组文件和子目录称为目录或文件夹。子目录是存在于目录中的目录。许多操作系统功能可以自动执行。
使用Python进行文件操作
Python提供了各种方法来执行底层操作系统中的文件和文件夹操作。
- Python中的OS模块具有添加和删除文件夹、检索其内容、更改目录、定位当前目录等功能。导入此模块,我们将使用其listdir()方法来获取文件。
-
同样,shutil模块提供了许多处理与文件和相关集合相关的操作的功能。它使用户可以选择复制和删除文件。您可以使用此模块的shutil.copy()、shutil.copy2()和shutil.copytree()方法将一个文件夹的内容复制到另一个文件夹中。
您可以通过导入它们各自的模块来将这些功能包含在您的文件中,如下所示-
import shutil
shutil.submodule_name(传递参数)
使用shutil.copy()操作
使用此函数,源文件的文本或内容将被复制到目标文件或目录中。此外,文件的权限模式被保留,但文件元数据(例如“创建日期”、“修改日期”等)未被保留。
语法
以下是shutil.copy()方法的语法-
shutil.copy(origin, target)
其中
- 源-包含源文件的位置或路径的字符串
-
目标-包含目标文件的位置或路径的字符串。
例子
以下是使用shutil.copy()操作从一个文件夹复制文件到其他文件夹的例子——
# 导入模块
import os
import shutil
#提供文件夹路径
origin = 'C:\Users\Lenovo\Downloads\Works\'
target = 'C:\Users\Lenovo\Downloads\Work TP\'
#获取所有文件列表
files = os.listdir(origin)
#将所有文件提取到目标文件夹
for file_name in files:
shutil.copy(origin+file_name, target+file_name)
print("文件已成功复制")
结果
以下是上述查询的输出:
文件已成功复制
注意 ——可以使用相对路径和绝对路径来复制文件。文件在磁盘上的位置由路径表示。 绝对路径包含查找文件所需的整个目录列表。例如,找到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()函数除了复制()外还做了一个额外操作,即保留元数据。
使用shutil.copytree()方法
此函数将包含在一个目录中的文件及其所有子目录移动到另一个目录中。
这表示源和目标均包括文件。字符串必须包含两个参数的名称。
语法
以下是 shutil.copytree() 方法的语法:
shutil.copytree(origin, target)
源和目标值与上面定义的相同。
例子
以下是使用shutil.copytree()操作将文件从一个文件夹复制到另一个文件夹的示例:
#导入该模块
import shutil
# 获取所有文件至目录
shutil.copytree('C:\Users\Lenovo\Downloads\Works\','C:\Users\Lenovo\Downloads\Work TP\/newfolder')
print("File Copied Successfully")
输出
File Copied Successfully
作为输出,我们将能够在执行后看到所做的更改,即将“Works”文件夹复制到Work TP文件夹中,并为其分配的名称为上面代码中包含的“newfolder”,其中包含Works文件夹中的所有文件。
为了获得该文件的副本,我们在此代码中包括了copytree()函数。
极客教程