如何使用Python复制文件夹内所有文件

概述

在开发过程中,我们经常需要复制文件夹内的所有文件。Python提供了一种简单的方式来实现这个功能。本文将向你介绍一种使用Python复制文件夹内所有文件的方法。

流程

下面是整个过程的步骤:

步骤 描述
1 指定源文件夹和目标文件夹
2 检查目标文件夹是否存在,如果不存在则创建
3 遍历源文件夹中的所有文件和文件夹
4 判断当前迭代的是文件还是文件夹
5 如果是文件,则复制到目标文件夹
6 如果是文件夹,则递归调用复制函数

现在让我们一步步来实现这个过程。

代码实现

首先,我们需要导入shutil模块,它提供了一些用于高级文件操作的函数。

import shutil

指定源文件夹和目标文件夹

我们需要指定源文件夹和目标文件夹的路径。可以将它们存储在两个变量中。

source_folder = "path/to/source/folder"
destination_folder = "path/to/destination/folder"

请将path/to/source/folderpath/to/destination/folder替换为实际的文件夹路径。

创建目标文件夹

在复制文件之前,我们需要检查目标文件夹是否存在。如果不存在,则需要创建它。

if not os.path.exists(destination_folder):
    os.mkdir(destination_folder)

遍历源文件夹中的所有文件和文件夹

我们使用os.listdir()函数遍历源文件夹中的所有文件和文件夹。

for item in os.listdir(source_folder):

判断当前迭代的是文件还是文件夹

我们可以使用os.path.isfile()函数判断当前迭代的是文件还是文件夹。

    if os.path.isfile(os.path.join(source_folder, item)):

复制文件

如果当前迭代的是文件,我们可以使用shutil.copy()函数将文件复制到目标文件夹。

        shutil.copy(os.path.join(source_folder, item), destination_folder)

递归调用复制函数

如果当前迭代的是文件夹,我们需要递归地调用复制函数,以便复制文件夹内的所有文件。

    else:
        copy_folder(os.path.join(source_folder, item), os.path.join(destination_folder, item))

完整代码

下面是完整的代码:

import os
import shutil

def copy_folder(source_folder, destination_folder):
    if not os.path.exists(destination_folder):
        os.mkdir(destination_folder)

    for item in os.listdir(source_folder):
        if os.path.isfile(os.path.join(source_folder, item)):
            shutil.copy(os.path.join(source_folder, item), destination_folder)
        else:
            copy_folder(os.path.join(source_folder, item), os.path.join(destination_folder, item))

source_folder = "path/to/source/folder"
destination_folder = "path/to/destination/folder"

copy_folder(source_folder, destination_folder)

请将path/to/source/folderpath/to/destination/folder替换为实际的文件夹路径。

以上就是使用Python复制文件夹内所有文件的方法。希望本文对你有所帮助!