python遍历多个文件夹下的文件复制到一个文件夹

python将多个文件夹下的文件复制到一个文件夹
但是这种情况只能处理两个层级的文件夹

# coding=utf-8
import os
import shutil

#目标文件夹,此处为相对路径,也可以改为绝对路径
# determination = 'target/'
determination = r'C:\Users\carry\Desktop\target'
if not os.path.exists(determination):
    os.makedirs(determination)

#源文件夹路径
# path = r'E:\数据集\CUB_200_2011\CUB_200_2011\images'
path = r'C:\Users\carry\Desktop\test'
folders= os.listdir(path)
# print(folders)
for folder in folders:
    dir = path + '\\' +  str(folder)
    files = os.listdir(dir)
    print(files)
    for file in files:
        source = dir + '\\' + str(file)
        print(source)
        deter = determination +'\\' + str(file)
        print(deter)
        shutil.copyfile(source, deter)

参考这:https://www.cnblogs.com/dev-sy/p/12887948.html

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

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

#对象文件的类型指定
file_type_list = ['pdf','txt','xls','xlsx','pptx','doc']  
src_folder = r'C:\Users\carry\Desktop\test001'
#取得文件夹下面的所有指定类型的文件全名(路径+文件名)
# os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
# for dirpath,dirnames,filenames in os.walk(folder):
#     print(dirnames)
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!===========')

# filelist = get_file_list(src_folder)

if(__name__=="__main__"):
    #copy源所在目录
    src_folder = r'C:\Users\carry\Desktop\test001'  #路径最后不要加\  
    #copy到的指定目录
    dst_folder = r'C:\Users\carry\Desktop\target'   #路径最后不要加\ 
    
    #取得文件夹下所有指定类型的文件全名
    filelist = get_file_list(src_folder)
    copy_file(filelist, dst_folder)

参考:https://blog.csdn.net/bigear_yu/article/details/105387727

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值