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 13 Python
Python使用Scrapy爬取妹子图
May 28 Python
Python手机号码归属地查询代码
May 04 Python
Python自动生产表情包
Mar 17 Python
python的Tqdm模块的使用
Jan 10 Python
python语言中with as的用法使用详解
Feb 23 Python
Python get获取页面cookie代码实例
Sep 12 Python
浅析python的优势和不足之处
Nov 20 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
python 画函数曲线示例
Dec 04 Python
python 星号(*)的多种用途
Sep 21 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
一个SQL管理员的web接口
2006/10/09 PHP
php目录管理函数小结
2008/09/10 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
Jquery读取URL参数小例子
2013/08/30 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
基于Python的OCR实现示例
2020/04/03 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
犯错检讨书
2014/02/21 职场文书
擅自离岗检讨书
2014/09/12 职场文书
学校国庆节活动总结
2015/03/23 职场文书