1. 程式人生 > >深度與廣度思想

深度與廣度思想

爬蟲中常用的兩種思路

深度

import os
fpath=r"F:\1"
list=[fpath]
while len(list)!=0:
    newpath=list.pop()#一直的往列表末尾裡新增新的元素,新增的新元素就是最底層的檔案或資料夾
    if os.path.isfile(newpath):
        print("檔案:"+newpath)
    else:
        print("目錄:"+newpath)
        for name in  os.listdir(newpath):#一個絕對路徑下的新檔案的名稱,加上該絕對路徑
                                         #等於該新檔案的絕對路徑
            list.append(os.path.join(newpath,name))

廣度

import collections
import os
fpath=r"F:\1"
list=collections.deque()
list.append(fpath)

while len(list)!=0:
    newpath =list.popleft()
    if os.path.isfile(newpath):
        print("檔案:"+newpath)
    else:
        print("目錄:"+newpath)
        #將newpath裡面的所有東西,變成絕對路徑,放入list
        for name in os.listdir(newpath):
           list.append(os.path.join(newpath,name))