【python实战】 从指定目录下遍历指定后缀的所有文件,然后拷贝到指定文件夹

1,问题描述
希望把某一路径下面所有(包含子路径)txt,docx,doc,pdf类型的文件,全部提取出来,拷贝到指定的目录里面
左边是要拷贝的目录,右边是拷贝到的目录
在这里插入图片描述
2,关键点描述
分成两步:
(1)从指定目录读取所有指定类型的文件全名(路径+文件名),返回一个拷贝对象的文件list
技术点:遍历文件夹:os.walk(dirpath)
文件路径和文件名合并:os.path.join(dirpath, file)
(2)将拷贝对象文件list里面的文件依次拷贝到指定目录
技术点:文件拷贝:shutil.copy

3,代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import shutil

#对象文件的类型指定
file_type_list = ['pdf','txt','xls','xlsx','pptx']  

#取得文件夹下面的所有指定类型的文件全名(路径+文件名)
def get_file_list(folder):
    filelist = []  #存储要copy的文件全名
    for dirpath,dirnames,filenames in os.walk(folder):
        for file in filenames:
            file_type = file.split('.')[-1]
            if(file_type in file_type_list):
                file_fullname = os.path.join(dirpath, file) #文件全名
                filelist.append(file_fullname)
    return filelist

#将文件list里面的文件拷贝到指定目录下
def copy_file(src_file_list, dst_folder):
    print('===========copy start===========')
    for file in src_file_list:
        shutil.copy(file, dst_folder)
    print('===========copy end!===========')

if(__name__=="__main__"):
    #copy源所在目录
    src_folder = r'...\srcdir'  #路径最后不要加\  (填入对应的copy源路径)
    #copy到的指定目录
    dst_folder = r'..\dstdir'   #路径最后不要加\  (填入对应的copy to路径)
    
    #取得文件夹下所有指定类型的文件全名
    filelist = get_file_list(src_folder)
    copy_file(filelist, dst_folder)
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值