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 相关文章推荐
老生常谈Python之装饰器、迭代器和生成器
Jul 26 Python
python安装Scrapy图文教程
Aug 14 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
django-rest-swagger的优化使用方法
Aug 29 Python
python的time模块和datetime模块实例解析
Nov 29 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
python中对二维列表中一维列表的调用方法
Jun 07 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 Python
Python中的socket网络模块介绍
Jul 23 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
vue的token刷新处理的方法
2018/07/17 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
python for 循环获取index索引的方法
2019/02/01 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python3中列表list合并的四种方法
2019/04/19 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
安全生产目标责任书
2014/04/14 职场文书
小学节能减排倡议书
2014/05/15 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
教师见习报告范文
2014/11/03 职场文书
货款欠条范本
2015/07/03 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书