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

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

用法

a目录下有文件夹和文件(txt),子目录中还有不同的文件,如word,txt
在这里插入图片描述
b目录为空,现在想要把a目录下所有的txt都转移到b中
在这里插入图片描述
下图为执行代码后的b目录结果
在这里插入图片描述

代码

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)
  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值