Python利用递归实现文件的复制方法


Posted in Python onOctober 27, 2018

如下所示:

import os
import time
from collections import deque

"""
利用递归实现目录的遍历
@para sourcePath:原文件目录
@para targetPath:目标文件目录
"""
def getDirAndCopyFile(sourcePath,targetPath):

  if not os.path.exists(sourcePath):
    return
  if not os.path.exists(targetPath):
    os.makedirs(targetPath)
    
  #遍历文件夹
  for fileName in os.listdir(sourcePath):
    #拼接原文件或者文件夹的绝对路径
    absourcePath = os.path.join(sourcePath, fileName)
    #拼接目标文件或者文件加的绝对路径
    abstargetPath = os.path.join(targetPath, fileName)
    #判断原文件的绝对路径是目录还是文件
    if os.path.isdir(absourcePath):
      #是目录就创建相应的目标目录
      os.makedirs(abstargetPath)
      #递归调用getDirAndCopyFile()函数
      getDirAndCopyFile(absourcePath,abstargetPath)
    #是文件就进行复制
    if os.path.isfile(absourcePath):
      rbf = open(absourcePath,"rb")
      wbf = open(abstargetPath,"wb")
      while True:
        content = rbf.readline(1024*1024)
        if len(content)==0:
          break
        wbf.write(content)
        wbf.flush()
      rbf.close()
      wbf.close()

if __name__ == '__main__':
  startTime = time.clock()
  sourcePath = r"H:\培训资料"
  targetPath = r"H:\培训资料_备份"
  getDirAndCopyFile(sourcePath,targetPath)
  #时间是用来计算复制总共消耗了多少时间
  endTime = time.clock()
  time_mi = endTime // 60
  time_s = endTime // 1 % 60
  time_ms = ((endTime * 100) // 1) % 100
  print("总用时:%02.0f:%02.0f:%2.0f" % (time_mi, time_s, time_ms))

以上这篇Python利用递归实现文件的复制方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python动态参数用法实例分析
May 25 Python
浅析python打包工具distutils、setuptools
Apr 20 Python
python实现随机调用一个浏览器打开网页
Apr 21 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
python中栈的原理及实现方法示例
Nov 27 Python
使用Python将图片转正方形的两种方法实例代码详解
Apr 29 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
浅谈anaconda python 版本对应关系
Oct 07 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
python实现简单反弹球游戏
Apr 12 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 Python
Python实现仓库管理系统
May 30 Python
python实现本地图片转存并重命名的示例代码
Oct 27 #Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 #Python
对python 匹配字符串开头和结尾的方法详解
Oct 27 #Python
Python判断以什么结尾以什么开头的实例
Oct 27 #Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 #Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 #Python
python 快速把超大txt文件转存为csv的实例
Oct 26 #Python
You might like
用session做客户验证时的注意事项
2006/10/09 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
PHP静态成员变量
2017/02/14 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
jquery默认校验规则整理
2014/03/24 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
python中zip()方法应用实例分析
2016/04/16 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
深入学习python多线程与GIL
2019/08/26 Python
python numpy数组中的复制知识解析
2020/02/03 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
户籍证明格式
2014/09/15 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
JavaScript实现音乐播放器
2022/08/14 Javascript