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 22 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
Python基于httpx模块实现发送请求
Jul 07 Python
Python 调用 ES、Solr、Phoenix的示例代码
Nov 23 Python
python 调整图片亮度的示例
Dec 03 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 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
NOT NULL 和NULL
2007/01/15 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
深入浅析JS中的严格模式
2018/06/04 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
Python入门篇之函数
2014/10/20 Python
python非递归全排列实现方法
2017/04/10 Python
Python字符串处理实现单词反转
2017/06/14 Python
对python中的高效迭代器函数详解
2018/10/18 Python
解析python的局部变量和全局变量
2019/08/15 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
法制宣传月活动方案
2014/05/11 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
nginx优化的六点方法
2021/03/31 Servers
python 模块重载的五种方法
2021/04/24 Python
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js
Python实现简单得递归下降Parser
2022/05/02 Python