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中的 is 操作符
Dec 26 Python
Django中Forms的使用代码解析
Feb 10 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
python编写简单端口扫描器
Sep 04 Python
python实现网站微信登录的示例代码
Sep 18 Python
详解使用Python下载文件的几种方法
Oct 13 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 06 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
Laravel 5框架学习之表单验证
2015/04/08 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python列表list数组array用法实例解析
2014/10/28 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
python3 shelve模块的详解
2017/07/08 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
神路信息Java面试题目
2013/03/31 面试题
国际经济贸易专业推荐信
2013/11/06 职场文书
大学军训感言
2014/01/10 职场文书
三年级语文教学反思
2014/02/01 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
mysql函数全面总结
2021/11/11 MySQL