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字符转换
Sep 06 Python
python定时执行指定函数的方法
May 27 Python
python通过socket查询whois的方法
Jul 18 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
python并发2之使用asyncio处理并发
Dec 21 Python
scrapy spider的几种爬取方式实例代码
Jan 25 Python
django反向解析和正向解析的方式
Jun 05 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
python文件读写代码实例
Oct 21 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
python编写俄罗斯方块
Mar 13 Python
Python一些基本的图像操作和处理总结
Jun 23 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
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
juqery 学习之四 筛选查找
2010/11/30 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
JS 控件事件小结
2012/10/31 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
vue实现搜索功能
2019/05/28 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
django自带调试服务器的使用详解
2019/08/29 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
python内打印变量之%和f的实例
2020/02/19 Python
python 5个顶级异步框架推荐
2020/09/09 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
java程序员面试交流
2012/11/29 面试题
政法大学毕业生自荐信范文
2014/01/01 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
房贷收入证明范本
2015/06/12 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技