linux 下有find -maxdepth 4设置层级,但是windows下没有该命令,但是程序又需要在windows下运行
所以想问下python是否有办法可以实现指定最大遍历层级,节省时间,提高效率?
linux 下有find -maxdepth 4设置层级,但是windows下没有该命令,但是程序又需要在windows下运行
所以想问下python是否有办法可以实现指定最大遍历层级,节省时间,提高效率?
4 回答4.4k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
仿照
os.walk
寫了一個 generatorlwalk
, 他的行為如同os.walk
但是多了一個max_level
可以控制最大的遍歷深度, 為了與os.walk
盡量吻合, 我也實作了topdown
和followlinks
這兩個 arguments, 但為了不使 code 太過複雜, 我省略了onerror
參數的實作以及若干 error handling。代碼如下:
簡單的範例如下:
一些說明:
核心在於使用
os.scandir
來保證系統遍歷的效率使用
max_level
來控制最大遍歷深度, 在 recursively 進入下一層的時候, 將最大深度減 1要實作 buttom up, 則需先 recursively 進入下一層再
yield
目錄與文件這邊有一個省略掉
topdown
,followlink
和若干處理的簡單版本, 可以幫助你觀察一下核心的實作手段:我回答過的問題: Python-QA