Python利用遞歸實(shí)現(xiàn)文件的復(fù)制方法
如下所示:
import os
import time
from collections import deque
"""
利用遞歸實(shí)現(xiàn)目錄的遍歷
@para sourcePath:原文件目錄
@para targetPath:目標(biāo)文件目錄
"""
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):
#拼接原文件或者文件夾的絕對(duì)路徑
absourcePath = os.path.join(sourcePath, fileName)
#拼接目標(biāo)文件或者文件加的絕對(duì)路徑
abstargetPath = os.path.join(targetPath, fileName)
#判斷原文件的絕對(duì)路徑是目錄還是文件
if os.path.isdir(absourcePath):
#是目錄就創(chuàng)建相應(yīng)的目標(biāo)目錄
os.makedirs(abstargetPath)
#遞歸調(diào)用getDirAndCopyFile()函數(shù)
getDirAndCopyFile(absourcePath,abstargetPath)
#是文件就進(jìn)行復(fù)制
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:\培訓(xùn)資料"
targetPath = r"H:\培訓(xùn)資料_備份"
getDirAndCopyFile(sourcePath,targetPath)
#時(shí)間是用來(lái)計(jì)算復(fù)制總共消耗了多少時(shí)間
endTime = time.clock()
time_mi = endTime // 60
time_s = endTime // 1 % 60
time_ms = ((endTime * 100) // 1) % 100
print("總用時(shí):%02.0f:%02.0f:%2.0f" % (time_mi, time_s, time_ms))
以上這篇Python利用遞歸實(shí)現(xiàn)文件的復(fù)制方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用BeautifulSoup和Scrapy抓取網(wǎng)頁(yè)數(shù)據(jù)的具體教程
在當(dāng)今信息爆炸的時(shí)代,數(shù)據(jù)無(wú)處不在,如何有效地抓取、處理和分析這些數(shù)據(jù)成為了許多開發(fā)者和數(shù)據(jù)科學(xué)家的必修課,本篇博客將深入探討如何使用Python中的兩個(gè)強(qiáng)大工具:BeautifulSoup和Scrapy來(lái)抓取網(wǎng)頁(yè)數(shù)據(jù),需要的朋友可以參考下2025-01-01
如何使用 Poetry 進(jìn)行 Python 項(xiàng)目管理
本文介紹了如何安裝、卸載和管理Poetry,以及如何查看其版本和位置,此外,還詳細(xì)說(shuō)明了如何使用Poetry安裝項(xiàng)目依賴,包括依賴解析、鎖定、虛擬環(huán)境管理等優(yōu)勢(shì),感興趣的朋友一起看看吧2024-11-11
python+openCV對(duì)視頻進(jìn)行截取的實(shí)現(xiàn)
這篇文章主要介紹了python+openCV對(duì)視頻進(jìn)行截取的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python文件操作及內(nèi)置函數(shù)flush原理解析
這篇文章主要介紹了Python文件操作及內(nèi)置函數(shù)flush原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Python+OpenCV實(shí)現(xiàn)分水嶺分割算法的示例代碼
分水嶺算法是用于分割的經(jīng)典算法,在提取圖像中粘連或重疊的對(duì)象時(shí)特別有用。本文將用Python+OpenCV實(shí)現(xiàn)這一算法,需要的可以參考一下2022-08-08
Pandas根據(jù)條件實(shí)現(xiàn)替換列中的值
在使用Pandas的Python中,DataFrame列中的值可以通過(guò)使用各種內(nèi)置函數(shù)根據(jù)條件進(jìn)行替換,本文主要來(lái)和大家討論在Pandas中用條件替換數(shù)據(jù)集列中的值的各種方法,希望對(duì)大家有所幫助2024-01-01
TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器
這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
Python的Flask框架中使用Flask-SQLAlchemy管理數(shù)據(jù)庫(kù)的教程
在Python中我們可以使用SQLAlchemy框架進(jìn)行數(shù)據(jù)庫(kù)操作,那么對(duì)應(yīng)的在Flask框架中我們可以使用SQLAlchemy,下面我們就來(lái)看一下Python的Flask框架中使用Flask-SQLAlchemy管理數(shù)據(jù)庫(kù)的教程2016-06-06
python使用zip將list轉(zhuǎn)為json的方法
今天小編就為大家分享一篇python使用zip將list轉(zhuǎn)為json的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

