📌  相关文章
📜  如何使用Python移动带有子文件夹的文件夹列表?(1)

📅  最后修改于: 2023-12-03 15:08:25.799000             🧑  作者: Mango

如何使用Python移动带有子文件夹的文件夹列表?

当我们需要对文件进行批量操作时,经常需要遍历文件夹下的所有文件并对其进行处理。但是,有时候我们需要移动整个文件夹,包括其中的子文件夹,这时候如何操作呢?下面将介绍如何使用Python移动带有子文件夹的文件夹列表。

首先,我们需要用os模块中的walk函数获取指定目录下的所有文件和子目录。walk函数返回一个三元组:(dirpath, dirnames, filenames),其中dirpath表示查找的路径(即包含子文件夹的路径),dirnames表示dirpath下的子文件夹列表,filenames表示dirpath下的文件列表。

接下来,我们可以使用shutil模块中的move函数将文件夹移动到指定目录。注意,move函数的第一个参数是源文件夹的路径,第二个参数是目标文件夹的路径,且目标文件夹必须存在。

以下是移动带有子文件夹的文件夹列表的Python代码示例:

import os
import shutil

def move_folder(source_path, target_path):
    for dirpath, dirnames, filenames in os.walk(source_path):
        target_dirpath = dirpath.replace(source_path, target_path, 1)
        if not os.path.exists(target_dirpath):
            os.makedirs(target_dirpath)
        for filename in filenames:
            source_file = os.path.join(dirpath, filename)
            target_file = os.path.join(target_dirpath, filename)
            shutil.move(source_file, target_file)
    shutil.rmtree(source_path)

上述代码中的move_folder函数接受源文件夹路径和目标文件夹路径作为参数,遍历源文件夹及其子文件夹下的所有文件,将其移动到目标文件夹中并删除源文件夹。

代码中的第4行使用os.walk函数获取源文件夹下的所有文件和子目录。然后,第5行将目标文件夹路径替换成与源文件夹路径相同的路径,并创建目标文件夹。在第7-10行中,我们使用shutil.move函数将每个文件移动到目标文件夹中。最后,我们使用shutil.rmtree函数删除源文件夹。

需要注意的是,由于该函数会删除源文件夹,因此请务必备份源文件夹中的数据。

以上就是使用Python移动带有子文件夹的文件夹列表的介绍。在实际使用中,请根据实际情况进行修改和适配。