当前位置: 移动技术网 > IT编程>脚本编程>Python > 使用Python实现从各个子文件夹中复制指定文件的方法

使用Python实现从各个子文件夹中复制指定文件的方法

2018年11月05日  | 移动技术网IT编程  | 我要评论

踏浪伴奏,41aaa,苗德功

之前用来整理图片的小程序,拿来备忘,算是使用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实现从各个子文件夹中复制指定文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网