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

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

import os
import shutil


def cp_and_move_to(exts, fromdir, todir):
    """
    移动fromdir目录下所有扩展名为exts的文件到todir
    exts:以空格分隔的字符串,可多个拓展名,如"bat txt"
    fromdir:原目录 # 目录建议使用绝对路径
    todir:目标目录,如果不存在,则建立
    """
    fp = {}
    extss = exts.lower().split()
    for dn, dns, fns in os.walk(fromdir):
        for fl in fns:
            if os.path.splitext(fl.lower())[1][1:] in extss:
                if dn not in fp.keys():
                    fp[dn] = []
                fp[dn].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:\Users\yinheark\PycharmProjects\数据爬取上传项目\test',
               r'C:\Users\yinheark\PycharmProjects\数据爬取上传项目\test\hello')

猜你喜欢

转载自www.cnblogs.com/felixwang2/p/9250320.html