Python利用递归实现文件的复制方法
如下所示:
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实现递归遍历文件夹并删除文件
思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹名称不等于".svn",则递归上面的方法 Python的实现 代码 import os import shutil import os.path import stat rootdir="F:\\work\\Test" for parent,dirnames,filen
-
使用go和python递归删除.ds store文件的方法
python版本: 复制代码 代码如下: #!/usr/bin/env pythonimport os, sys; def walk(path): print "cd directory:"+path for item in os.listdir(path): try: if(item == ".DS_Store"): global count count = count+1 print " find file .Ds_Store" os.rem
-
Python利用递归和walk()遍历目录文件的方法示例
前言 经常需要检查一个"目录或文件夹"内部有没有我们想要的文件或者文件夹,就需要我们循环迭代出所有文件和子文件夹,Python中遍历指定目录下所有的文件和文件夹,包含多级目录,有两种方法,一种是通过递归思想去遍历,另一种是os模块的walk()函数下面话不多说,就来一起看看详细的介绍: 列出目录结构 一.递归方法 #coding:utf-8 import os allfile=[] def getallfile(path): allfilelist=os.listdir(path) f
-
python递归下载文件夹下所有文件
最近想备份网站,但是php下载文件的大小是有大小限制的,而我也懒得装ftp再下载了,就想着暂时弄个二级域名站,然后用python(python3)的requests库直接下载网站根目录下的所有文件以及文件夹.(0-0就是这么任性) 1.安装requests库 pip install requests 2.下载文件夹下所有文件及文件夹 这里需要处理的地方主要是文件夹,这里我们判断出该链接是文件夹时,自动创建文件夹,并递归继续进行操作,否则判断该链接是文件,直接使用requests get方法下载,
-
python实现递归查找某个路径下所有文件中的中文字符
本文实例为大家分享了python实现递归查找某个路径下所有文件中的中文字符,供大家参考,具体内容如下 # -*- coding: utf-8 -*- # @ description: # @ author: # @ created: 2018/7/21 import re import sys import os reload(sys) sys.setdefaultencoding("utf8") def translate(str): out = set() line = str.s
-
python 实现文件的递归拷贝实现代码
所以就想把这些照片翻着看一遍,可是拷出来的照片手机 里是按时间自动分文件夹的,一个一个文件夹拷很是麻烦,于是打算写个python小脚本来完成这个工作(扯这么多,终于 到主题了,囧) 这是待拷贝的文件夹根目录,每个子目录下都有若干照片. 废话少说,上代码: 复制代码 代码如下: # -*- coding: utf-8 -*- #!/usr/bin/python #Filename:copyfile.py import os,shutil def mycopy(srcpath,dstpath): i
-
python 递归遍历文件夹,并打印满足条件的文件路径实例
题目:利用协程来遍历目录下,所有子文件及子文件夹下的文件是否含有某个字段值,并打印满足条件的文件的绝对路径. #!/user/bin/env python # -*- coding:utf-8 -*- #grep -rl "python" D:\devtools\workspace\python\aaa import os def init(func): def wrapper(*args,**kwargs): res=func(*args,**kwargs) res.send(Non
-
使用 Python 实现文件递归遍历的三种方式
今天有个脚本需要遍历获取某指定文件夹下面的所有文件,我记得很早前也实现过文件遍历和目录遍历的功能,于是找来看一看,嘿,不看不知道,看了吓一跳,原来之前我竟然用了这么搓的实现. 先发出来看看: def getallfiles(dir): """遍历获取指定文件夹下面所有文件""" if os.path.isdir(dir): filelist = os.listdir(dir) for ret in filelist: filename = dir
-
Python实现FTP上传文件或文件夹实例(递归)
本文实例讲述了Python实现FTP上传文件或文件夹实例.分享给大家供大家参考.具体如下: import sys import os import json from ftplib import FTP _XFER_FILE = 'FILE' _XFER_DIR = 'DIR' class Xfer(object): ''''' @note: upload local file or dirs recursively to ftp server ''' def __init__(self): s
-
Python利用递归实现文件的复制方法
如下所示: 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.pa
-
linux 下python多线程递归复制文件夹及文件夹中的文件
本文是利用python 复制文件夹 刚开始写了一个普通的递归复制文件夹 然后想了想 觉得对io频繁的程序 threading 线程还比较友好 就写了个多线程版本的 最恶心人的地方就是路径 其他都还好吧 import os import threading import multiprocessing length_of_folder = 0 def copyfile(Path): if os.path.isdir(Path): print("-----------%s" %
-
python利用numpy存取文件的方式
NumPy提供了多种存取数组内容的文件操作函数.保存数组数据的文件可以是二进制格式或者文本格式.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件 1. tofile()和fromfile() tofile()将数组中的数据以二进制格式写进文件 tofile()输出的数据不保存数组形状和元素类型等信息 fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改 import nump
-
JAVA利用递归删除文件代码实例
这篇文章主要介绍了JAVA利用递归删除文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天需要用到删除文件的方法,一年前这个时候也写过当时,写的是一个文件夹下面不存在其他文件夹,只存在子文件.但是那时不知道存在什么情况,总是出现文件删不掉,虽然到现在也不知道什么原因,猜测 是什么流被占用吧[我记得当时流都关了的... 今天是利用递归删除,发现递归真的蛮好用的,就是有时效率太低...虽然简单但是也贴上来吧 public boolean
-
python利用numpy存取文件案例教程
NumPy提供了多种存取数组内容的文件操作函数.保存数组数据的文件可以是二进制格式或者文本格式.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件 1. tofile()和fromfile() tofile()将数组中的数据以二进制格式写进文件 tofile()输出的数据不保存数组形状和元素类型等信息 fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改 import
-
python 利用栈和队列模拟递归的过程
一.递归 递归调用:一个函数,调用的自身,称为递归调用 递归函数:一个可以调用自身的函数称为递归函数 凡是循环能干的事,递归都能干 方法: 1.写出临界条件 2.找这一次和上一次的关系 3.假设当前函数已经能用,调用自身计算上一次的结果再求出本次的结果 下面我们通过两段代码简单看一下递归和非递归的区别: 输入一个大于等于1的数,求1到n的和! # 普通函数方法 def hanshu(n): sum = 0 # 循环遍历每一个数字,将他们加到一个事先定义好的变量上,直到加完 for x in ra
-
python利用os模块编写文件复制功能——copy()函数用法
我就废话不多说了,大家还是直接看代码吧~ #文件复制 import os src_path=r'E:\Pycharm\python100题\代码' target_path=r'E:\Pycharm\python100题\123' #封装成函数 def copy_function(src,target): if os.path.isdir(src) and os.path.isdir(target): filelist=os.listdir(src) for file in filelist: p
随机推荐
- 浅谈JavaScript 浏览器对象
- 在SQL Server数据库中为标识(IDENTITY)列插入显式值
- jQuery 获取页面li数组并删除不在数组中的key
- jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
- 简单易用的基于jQuery版仿新浪微博向下滚动效果(附DEMO)
- 深入理解javascript中return的作用
- VBS教程:VBScript 语句-Sub 语句
- Centos7/RHEL7双网卡绑定的方法
- 在DataTable中执行Select("条件")后,返回DataTable的方法
- 空格或者空白字符导致$.ajax()报parseerror错误小结
- 使用Jquery实现点击文字后变成文本框且可修改
- IIS6 和Tomcat5 的整合
- C#中使用JSON.NET实现JSON、XML相互转换
- JS交换变量的方法
- Sql Server中存储过程中输入和输出参数(简单实例 一看就懂)
- Oracle11.2 命令行手工最简创建数据库的过程
- 有了SSL证书,如何在IIS环境下部署https
- 浅谈C语言函数调用参数压栈的相关问题
- c# 获得局域网主机列表实例
- Vue 实现双向绑定的四种方法