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中正则表达式的使用详解
Oct 17 Python
初步认识Python中的列表与位运算符
Oct 12 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
Python实现多线程的两种方式分析
Aug 29 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
Python数据库小程序源代码
Sep 15 Python
Pytorch转tflite方式
May 25 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
通过代码简单了解django model序列化作用
Nov 12 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调用Twitter的RSS的实现代码
2010/03/10 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
node.js通过url读取文件
2020/10/16 Javascript
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python的命名规则知识点总结
2019/10/04 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
高级电工工作职责
2013/11/21 职场文书
2015年元旦标语大全
2014/12/09 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers