如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/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:以空格分隔的字符串,可多個(gè)拓展名,如"bat txt" #src:原目錄 #dest:目標(biāo)目錄,如果不存在,則建立 cp_tree_ext('doc docx','/home/lincoln/python/copy/source','/home/lincoln/python/copy/target') |
只是段代碼,直接調(diào)用cp_tree_ext(exts,src,dest) 方法即可。
以上這篇python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/soslinken/article/details/54015578