如下所示:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import shutil
def cp_tree_ext(exts,src,dest):
"""
Rebuild the director tree like src below dest and copy all files like XXX.exts to dest
exts:exetens seperate by blank like "jpg png gif"
"""
fp={}
extss=exts.lower().split()
for dn,dns,fns in os.walk(src):
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(src)+1:] newpath=os.path.join(dest,relativepath)
for f in v:
oldfile=os.path.join(k,f)
print("拷贝 ["+oldfile+"] 至 ["+newpath+"]")
if not os.path.exists(newpath):
os.makedirs(newpath)
shutil.copy(oldfile,newpath)
#用法如下:
#
#cp_tree_ext(exts,src,dest)
#
#exts:以空格分隔的字符串,可多个拓展名,如"bat txt"
#src:原目录
#dest:目标目录,如果不存在,则建立
cp_tree_ext('doc docx','/home/lincoln/python/copy/source','/home/lincoln/python/copy/target')
只是段代码,直接调用cp_tree_ext(exts,src,dest) 方法即可。
以上这篇python 拷贝特定后缀名文件,并保留原始目录结构的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
您可能感兴趣的文章:python使用paramiko实现远程拷贝文件的方法Python实现拷贝多个文件到同一目录的方法用python实现的可以拷贝或剪切一个文件列表中的所有文件python 实现文件的递归拷贝实现代码Python基于sftp及rsa密匙实现远程拷贝文件的方法python检测文件夹变化,并拷贝有更新的文件到对应目录的方法Python实现拷贝/删除文件夹的方法详解Python多进程写入同一文件的方法python多进程实现文件下载传输功能Python使用文件锁实现进程间同步功能【基于fcntl模块】Python实现的多进程拷贝文件并显示百分比功能示例