复制指定文件夹下某种扩展名的文件到另一个文件夹

# -*- coding: utf-8 -*-
# @Author   : FELIX
# @Date     : 2018/7/1 15:18

import os
import shutil


def cp_and_move_to(exts, fromdir, todir, is_all=True):
    """
    移动fromdir目录下所有扩展名为exts的文件到todir
    :param exts: 可以是列表或者字符串,如果是字符串,用空格分隔
    :param fromdir: 原目录 # 目录建议使用绝对路径
    :param todir: 目标目录,如果不存在,则建立
    :param is_all: 如果设置为False,直接拷贝全部,不考虑扩展名
    :return:
    """
    extss = []
    if type(exts) == str:
        extss = exts.lower().split()
    elif type(exts) == list:
        extss = exts
    fp = {}
    for root, dirs, files in os.walk(fromdir):
        for fl in files:
            if not is_all:  # 如果指定了扩展名
                if os.path.splitext(fl.lower())[1][1:] in extss:
                    fp.setdefault(root, []).append(fl)
            else:
                fp.setdefault(root, []).append(fl)
    for k, v in fp.items():
        relativepath = k[len(fromdir) + 1:]
        newpath = os.path.join(todir, relativepath)
        for f in v:
            oldfile = os.path.join(k, f)
            print("Copying [" + oldfile + "] To [" + newpath + "]")
            if not os.path.exists(newpath):
                os.makedirs(newpath)
            shutil.copy(oldfile, newpath)

cp_and_move_to('txt xlsx', r'C:UsersyinhearkPycharmProjects数据爬取上传项目	est', r'C:UsersyinhearkPycharmProjects数据爬取上传项目	esthello')

 
原文地址:https://www.cnblogs.com/felixwang2/p/9250320.html