Python利用佇列廣度遍歷 複製檔案

2021-08-14 11:48:28 字數 1527 閱讀 9957

"""

廣度遍歷目錄、複製檔案

"""import os

import collections

"""@para1 sourcepath

原檔案目錄

@para1 targetpath

目標檔案目錄

"""def

getdirandcopyfile(sourcepath,targetpath):

if not os.path.exists(sourcepath):

return

if not os.path.exists(targetpath):

os.makedirs(targetpath)

temptar = targetpath

#建立乙個佇列來存放路徑

queuepath = collections.deque()

#建立乙個佇列用來存放目標路徑

queuetarpath = collections.deque()

#將路徑存進佇列

#將目標檔案路徑存進佇列

while true:

#如果原檔案路徑隊列為空,則跳出迴圈

if len(queuepath)==0:

break

#從原檔案路徑佇列中向左取出路徑

path = queuepath.popleft()

#從目標路徑佇列中向左取出路徑

tarpath=queuetarpath.popleft()

#遍歷出path

for filename in os.listdir(path):

#拼接路徑

abspath = os.path.join(path,filename)

abstar = os.path.join(tarpath,filename)

# 判斷是否是檔案,是就進行複製

if os.path.isfile(abspath):

rbf = open(abspath,

'rb')

wbf = open(abstar,

'wb')

while true:

content = rbf.readline(1024 * 1024 * 5)

if len(content) == 0:

break

wbf.write(content)

wbf.flush()

rbf.close()

wbf.close()

#如果是路徑,則存進佇列

if os.path.isdir(abspath):

if os.path.exists(abstar):

os.rmdir(abstar)

os.mkdir(abstar)

if __name__ == '__main__':

sourcepath = r"原檔案路徑

"targetpath = r"目標檔案路徑

"getdirandcopyfile(sourcepath,targetpath)

Python深度優先遍歷和廣度優先遍歷實現

class node object 節點類 def init self,elem 1 lchild none rchild none self.elem elem self.lchild lchild self.rchild rchild class tree object 樹類 def init ...

容易理解的python用佇列實現廣度優先遍歷檔案

需求簡單介紹 硬碟中查詢檔案,不同目錄中檔案的整合,專案開發中多檔案聯合查詢,等都要用到檔案遍歷。首先簡單闡述一下廣度遍歷實現方式 廣度遍歷檔案很明顯,每一次遍歷不追求遍歷目錄的深度,只追求其廣度。下面畫張圖形容一下 看圖分析 對 廣度遍歷測試 這個資料夾,進行遍歷,第一次把a中的東西遍歷完,資料夾...

洛谷 P1443 馬的遍歷(廣度優先搜尋 佇列)

題目 標籤 搜尋 廣度優先搜尋,bfs 佇列 一般的,求解的個數用深搜,求最優解用廣搜。這題很明顯,求馬到達某個點最少要走幾步,所以用廣度優先搜尋。思路很簡單,馬能走八個方向,在搜尋時逐一走一遍,滿足條件就進隊,再記錄步數。include include using namespace std in...