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 28 Python
更改Python命令行交互提示符的方法
Jan 14 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
python中的迭代和可迭代对象代码示例
Dec 27 Python
opencv python 2D直方图的示例代码
Jul 20 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
NumPy 基本切片和索引的具体使用方法
Apr 24 Python
python 默认参数相关知识详解
Sep 18 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
python基础之文件处理知识总结
May 23 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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/11/16 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
python判断完全平方数的方法
2018/11/13 Python
python抖音表白程序源代码
2019/04/07 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
八荣八耻的活动方案
2014/08/16 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
公司介绍信范文
2015/01/31 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫