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使用xlrd模块操作Excel数据导入的方法
May 26 Python
python制作最美应用的爬虫
Oct 28 Python
用python实现对比两张图片的不同
Feb 05 Python
Python切片工具pillow用法示例
Mar 30 Python
python 日志增量抓取实现方法
Apr 28 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
如何基于Python创建目录文件夹
Dec 31 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
Numpy一维线性插值函数的用法
Apr 22 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
Jquery提交表单 Form.js官方插件介绍
2012/03/01 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
浅析使用Python操作文件
2017/07/31 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
2018/03/13 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
单位人事专员介绍信
2014/01/11 职场文书
婚礼司仪主持词
2014/03/14 职场文书
青春演讲稿范文
2014/05/08 职场文书
灵山大佛导游词
2015/02/04 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL