标签:
我有一堆层级3到4级的文件夹,这里面存有的一些文件是我需要的,一些是我不需要的。需要的文件都存储在名字中有‘Data‘的文件夹内。现在我需要把这些文件提取(拷贝)到一个指定的文件夹里。
一个文件夹一个文件夹去点开是一种方法,但是对于层级比较深的文件夹是一件很枯燥的事情。
本着一切尽量自动化的原则,我用python来做这件事情。
这个需求归纳下来需要:
python对文件、文件夹的操作是非常常见的需求,学会使用它们可以对付很多类似的批量处理文件的工作。
我们用到的package有两个:
用到的函数是
os
subprocess
了解了这些函数后,放出代码。注意IterCopyDocs是一个迭代函数,自己调用自己,目的是模拟对目录的遍历。
import subprocess
import os
def IterCopyDocs(dstPath):
ids = os.listdir()
for id in ids:
if os.path.isdir(id):
if ‘Data‘ in id:
os.chdir(id)
pics = os.listdir()
for pic in pics:
if os.path.isfile(pic):
print("copy \""+pic+"\" "+dstPath)
subprocess.call("copy \""+pic+"\" "+dstPath, shell=True)
os.chdir(‘..\\‘)
else:
os.chdir(id)
IterCopyDocs(dstPath)
os.chdir(‘..\\‘)
subprocess.call("dir", shell=True)
root_dir = "C:\\Users\\Administrator\\Downloads"
dst_dir = "C:\\Users\\Administrator\\Downloads"
os.chdir(root_dir) # root directory of data
IterCopyDocs(dst_dir) # destination directory
(完)
标签:
原文地址:http://www.cnblogs.com/codingfun/p/4700492.html