欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 将一个目录下不同文件夹的文件全提取到指定目录

程序员文章站 2022-05-18 20:25:51
...

工作中遇到的要整理文件的情况

用法

a目录下有文件夹和文件(txt),子目录中还有不同的文件,如word,txt
Python 将一个目录下不同文件夹的文件全提取到指定目录
b目录为空,现在想要把a目录下所有的txt都转移到b中
Python 将一个目录下不同文件夹的文件全提取到指定目录
下图为执行代码后的b目录结果
Python 将一个目录下不同文件夹的文件全提取到指定目录

代码

import os.path
import shutil


def each_file(filepath, new_filepath):
    '''
    读取每个文件夹,将遇到的指定文件统统转移到指定目录中
    :param filepath: 想要获取的文件的目录
    :param new_filepath: 想要转移的指定目录
    :return: 
    '''
    l_dir = os.listdir(filepath)  # 读取目录下的文件或文件夹

    for one_dir in l_dir:  # 进行循环
        full_path = os.path.join('%s\%s' % (filepath, one_dir))  # 构造路径
        new_full_path = os.path.join('%s\%s' % (new_filepath, one_dir))
        if os.path.isfile(full_path):  # 如果是文件类型就执行转移操作
            if one_dir.split('.')[1] == 'txt':  # 只转移txt文件,修改相应后缀就可以转移不同的文件
                shutil.copy(full_path, new_full_path)  # 这个是转移的语句,最关键的一句话
        else:   # 不为文件类型就继续递归
            each_file(full_path, new_filepath)  # 如果是文件夹类型就有可能下面还有文件,要继续递归


if __name__ == '__main__':
    old_path = r'D:\桌面\演示\a'
    new_path = r'D:\桌面\演示\b'
    each_file(old_path, new_path)