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实现调用其他python脚本的方法
Oct 05 Python
Python中的匿名函数使用简介
Apr 27 Python
python获取当前日期和时间的方法
Apr 30 Python
Python 基础之字符串string详解及实例
Apr 01 Python
Python使用pymysql小技巧
Jun 04 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
自定义django admin model表单提交的例子
Aug 23 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
Jun 10 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
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
smarty简单分页的实现方法
2014/10/27 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
Python之reload流程实例代码解析
2018/01/29 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
大学生简历中个人的自我评价
2013/10/06 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
房地产开发项目建议书
2014/05/16 职场文书
企业口号大全
2014/06/12 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python