python实现复制大量文件功能


Posted in Python onAugust 31, 2019

本文实例为大家分享了python实现复制大量文件的具体代码,供大家参考,具体内容如下

本来是去项目公司拷数据,结果去了发现有500G,靠系统的复制功能怕是得好几个小时,于是回来学一手操作,话不多说上代码:

说明:CopyFiles1是可以将sourceDir连子目录一起原样复制到targetDir,而CopyFiles2是在sourceDir中筛选特定格式文件,然后将其直接放在targetDir中,会很乱,但是很快

import os
import time
import shutil
sourceDir = r"D:\copytest\datatest"
targetDir = r"D:\copytest\result"
copyFileCounts = 0
 
def CopyFiles1(sourceDir, targetDir):
#完全连子目录也会复制好,美观
  global copyFileCounts
  print(sourceDir )
  print("%s 当前处理文件夹%s已处理%s 个文件" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), sourceDir,copyFileCounts) )
  for f in os.listdir(sourceDir):
    sourceF = os.path.join(sourceDir, f)
    targetF = os.path.join(targetDir, f)
 
    if os.path.isfile(sourceF):
 
      if not os.path.exists(targetDir):
        os.makedirs(targetDir)
      copyFileCounts += 1
 
 
      if not os.path.exists(targetF) or (os.path.exists(targetF) and (os.path.getsize(targetF) != os.path.getsize(sourceF))):
 
        open(targetF, "wb").write(open(sourceF, "rb").read())
        print ("%s %s 复制完毕" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), targetF))
      else:
        print ("%s %s 已存在,不重复复制" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), targetF))
 
    if os.path.isdir(sourceF):
      copyFiles(sourceF, targetF)
 
def CopyFiles2(dir):
  #会将目录下所有文件都复制在一起,速度快,可以筛选文件
  i=0
  for root,dir1,filename in os.walk(dir):
   #print(filename)
   for index in range(len(filename)):
    #print(os.path.splitext(filename[index])[1])
    #if os.path.splitext(filename[index])[1]=='.':#这里注意filename是个元组,splitext方法的时候只能是字符串
    if 1==1:
      #i+=1
      print('here')
      root1="D:\\copytest\\result3"
      old_path = os.path.join(root, filename[index])
      print(old_path)
      new_path = os.path.join(root1,filename[index])
      shutil.copyfile(old_path,new_path)
 
#print("总共有",i,"图层文件被复制!")
 
if __name__ == "__main__":
 time_start = time.time()
 try:
  import psyco
  psyco.profile()
 except ImportError:
   pass
 #CopyFiles1(sourceDir,targetDir)
 CopyFiles2("D:/copytest/datatest")
 time_end = time.time()
 print('totally cost', time_end - time_start)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3.4.3下逐行读入txt文本并去重的方法
Apr 29 Python
python 二维数组90度旋转的方法
Jan 28 Python
linux安装python修改默认python版本方法
Mar 31 Python
django框架使用orm实现批量更新数据的方法
Jun 21 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
python实现批量修改文件名
Mar 23 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
详解Python+OpenCV绘制灰度直方图
Mar 22 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 #Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 #Python
解决Django migrate不能发现app.models的表问题
Aug 31 #Python
python django生成迁移文件的实例
Aug 31 #Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 #Python
python+django+rest框架配置创建方法
Aug 31 #Python
Python实现Restful API的例子
Aug 31 #Python
You might like
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
jquery 使用点滴函数代码
2011/05/20 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
Python全排列操作实例分析
2018/07/24 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
销售自我评价
2013/10/22 职场文书
公司聘任书模板
2014/03/29 职场文书
平面设计专业求职信
2014/08/09 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
道歉情书大全
2015/05/12 职场文书
2016公司新年问候语
2015/11/11 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
Python字符串格式化方式
2022/04/07 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python