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远程登录代码
Apr 29 Python
Python中pygame安装方法图文详解
Nov 11 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
python 用for循环实现1~n求和的实例
Feb 01 Python
Python中的字符串切片(截取字符串)的详解
May 15 Python
Python3之手动创建迭代器的实例代码
May 22 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
matplotlib quiver箭图绘制案例
Apr 17 Python
简单的Python人脸识别系统
Jul 14 Python
基于Python爬取股票数据过程详解
Oct 21 Python
用Python自动清理系统垃圾的实现
Jan 18 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
.htaccess文件保护实例讲解
2011/02/06 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
大学生未来职业生涯规划书
2014/02/15 职场文书
小学教师师德承诺书
2014/05/23 职场文书
殡葬服务心得体会
2014/09/11 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
文员岗位职责
2015/02/04 职场文书
个人年度总结报告
2015/03/09 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
golang正则之命名分组方式
2021/04/25 Golang
golang 实现菜单树的生成方式
2021/04/28 Golang
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android