Python批量处理:递归复制子文件夹指定文件并导出Excel
本文介绍利用Python脚本批量整理图片文件的实现方法。通过递归遍历深层子文件夹,精准定位并复制特定后缀(如_co.pgm)的文件至目标目录,同时使用xlwt库将采集日期等元数据写入Excel表格,实现文件管理与数据记录的自动化处理。
这里分享一个用于整理图片的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数据
import os
import re
import xlwt
hang=0
#递归复制文件夹内的文件
def copyFiles(sourceDir,targetDir):
global hang #全局变量,记录即将写入Excel的行号
worksheet.write(hang, 0, label = sourceDir)
for file in os.listdir(sourceDir):
frames = '('+file[file.find('_')+1:]+')' #待写入Excel中的数据
sourceDir1 = os.path.join(sourceDir,file) #路径名拼接
targetDir1 = os.path.join(targetDir,file)
for file in os.listdir(sourceDir1):
sourceDir2 = os.path.join(sourceDir1,file)
#忽略某些特定的子文件夹
if sourceDir2.find("Random1")>0:
#列出源目录文件和文件夹
count= -1
for file in os.listdir(sourceDir2):
#拼接完整路径
if re.search('_c0.pgm',file):
count+=1
sourceFile = os.path.join(sourceDir2,file)
targetFile = os.path.join(targetDir1,file)
if os.path.isfile(sourceFile):
if not os.path.exists(targetDir1):
os.makedirs(targetDir1)
if not os.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())
print targetFile+" copy succeeded"
frames = '0-'+str(count)+frames
worksheet.write(hang, 1, label = 1)
worksheet.write(hang, 2, label = frames)
hang+=1
print frames
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Worksheet')
copyFiles("F:/2016_07_07","F:/07_07")
workbook.save('auto_book.xls')
print 'end'
上述内容即为利用Python从各子文件夹中复制指定文件的具体实现方案,旨在为读者提供实用参考,欢迎继续支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













