"""廣度遍歷目錄、複製檔案
"""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...