将文件夹中的所有文件(包括子文件夹中的文件),移动到该文件夹的根目录

还可以对后缀名进行筛选,即只选取指定类型的文件进行移动。

用到了python自带扩展包shutil,改包用于高阶的文件编辑、移动操作。

shutil.move(old_path,new_path)

文件路径最好是输入绝对引用路径,相对引用路径目前还没试过

import os
import shutil
# 输入变量
EXTENSIONS = []
ROOT = input('请输入根目录')  # 根文件夹
ex = input('请输入扩展名')  # 根需要提取的文件类型
while ex != 'no':
    EXTENSIONS.append(ex)
    ex = input('请继续输入扩展名,如果不需要了,则回复:no')


# 主体函数
def selector_file_mover(root, extensions):
    files = os.walk(root)  # 递归获取所有子文件夹及文件
    for dirpath, dirnames, filenames in files:
        if dirpath != root:  # 除了根文件夹以外的
            for name in filenames:  # 遍历所有文件
                extension = os.path.splitext(name)[1]
                if extension in extensions:
                    old_path = os.path.join(dirpath, name)  # 原路径
                    new_path = os.path.join(root, name)  # 迁移后的新路径(根文件夹)
                    shutil.move(old_path, new_path)  # 移动


selector_file_mover(ROOT, EXTENSIONS)

 

    原文作者:PhariseesLord
    原文地址: https://blog.csdn.net/PhariseesLord/article/details/117308158
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞