# -*- 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:\Users\yinheark\PycharmProjects\数据爬取上传项目\test', r'C:\Users\yinheark\PycharmProjects\数据爬取上传项目\test\hello')