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脚本实现代码行数统计代码分享
Mar 10 Python
Python实现配置文件备份的方法
Jul 30 Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
谈谈如何手动释放Python的内存
Dec 17 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
python连接数据库的方法
Oct 19 Python
django中模板的html自动转意方法
May 27 Python
Python Pandas 箱线图的实现
Jul 23 Python
用Python生成HTML表格的方法示例
Mar 06 Python
python3中TQDM库安装及使用详解
Nov 18 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 03 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模板引擎SMARTY
2006/10/09 PHP
PHP与MySQL交互使用详解
2006/10/09 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python绘制多个子图的实例
2019/07/07 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
4s店总经理岗位职责
2013/12/31 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
初一新生军训方案
2014/05/22 职场文书
庆元旦演讲稿
2014/09/15 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫