使用Python实现从各个子文件夹中复制指定文件的方法
之前用来整理图片的小程序,拿来备忘,算是使用Python复制文件的一个例子。
#-*-coding:utf-8-*-
#程序用来拷贝文件并输出图片采集日期等其他信息到Excel中
#文件夹结构:
#2016_07_07
#-Data_07_07_001
#-Random1
#-image001_co.pgm
#-image001_c1.pgm
#-image002_co.pgm
#-image002_c1.pgm
#-……
#-Random2
#-……
#-Data_07_07_002
#-Data_07_07_003
#-……
#所以我们只是拷贝每个子文件夹中,Random1文件夹中的_co.pgm数据
importos
importre
importxlwt
hang=0
#递归复制文件夹内的文件
defcopyFiles(sourceDir,targetDir):
globalhang#全局变量,记录即将写入Excel的行号
worksheet.write(hang,0,label=sourceDir)
forfileinos.listdir(sourceDir):
frames='('+file[file.find('_')+1:]+')'#待写入Excel中的数据
sourceDir1=os.path.join(sourceDir,file)#路径名拼接
targetDir1=os.path.join(targetDir,file)
forfileinos.listdir(sourceDir1):
sourceDir2=os.path.join(sourceDir1,file)
#忽略某些特定的子文件夹
ifsourceDir2.find("Random1")>0:
#列出源目录文件和文件夹
count=-1
forfileinos.listdir(sourceDir2):
#拼接完整路径
ifre.search('_c0.pgm',file):
count+=1
sourceFile=os.path.join(sourceDir2,file)
targetFile=os.path.join(targetDir1,file)
ifos.path.isfile(sourceFile):
ifnotos.path.exists(targetDir1):
os.makedirs(targetDir1)
ifnotos.path.exists(targetFile)or(os.path.exists(targetFile)and(os.path.getsize(targetFile)!=os.path.getsize(sourceFile))):
open(targetFile,"wb").write(open(sourceFile,"rb").read())
printtargetFile+"copysucceeded"
frames='0-'+str(count)+frames
worksheet.write(hang,1,label=1)
worksheet.write(hang,2,label=frames)
hang+=1
printframes
workbook=xlwt.Workbook()
worksheet=workbook.add_sheet('MyWorksheet')
copyFiles("F:/2016_07_07","F:/07_07")
workbook.save('auto_book.xls')
print'end'
以上这篇使用Python实现从各个子文件夹中复制指定文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。