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中endswith()函数的基本使用
Apr 07 Python
MySQL适配器PyMySQL详解
Sep 20 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
python线程池threadpool实现篇
Apr 27 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
python+flask编写一个简单的登录接口
Nov 13 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下打开URL地址的几种方法小结
2010/05/16 PHP
PHP编程风格规范分享
2014/01/15 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
Python多线程实例教程
2014/09/06 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python 数据类型强制转换的总结
2021/01/25 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
大学生应聘推荐信范文
2013/11/19 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
经济担保书范文
2014/04/02 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
大学生赌博检讨书
2014/09/22 职场文书
大学生年度个人总结
2015/02/15 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
教师节获奖感言
2015/07/31 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
SQL Server使用导出向导功能
2022/04/08 SQL Server
解决 redis 无法远程连接
2022/05/15 Redis