回答
next(os.walk(...))
我多一點parametrised的解決辦法是這樣的:
for root, dirs, files in os.walk(path):
if not recursive:
while len(dirs) > 0:
dirs.pop()
//some fency code here using generated list
編輯:修復,如果/當問題。謝謝,@Dirk van Oosterbosch:}
這隻適用於有** 1 **子目錄的情況。對於多個子目錄,使用'while len(dirs)> 0'而不是'if'。 – 2013-04-23 19:35:55
@DirkvanOosterbosch:或者更簡單:只要'如果不遞歸:break'不相關:你可以使用'del dirs [:]'而不是'dirs:dirs.pop()'。 – jfs 2016-07-05 18:02:18
使用'dirs.clear()'更加地道。 – ideasman42 2017-11-18 06:58:24
那麼什麼Kamiccolo的意思是更符合這一點:
for str_dirname, lst_subdirs, lst_files in os.walk(str_path):
if not bol_recursive:
while len(lst_subdirs) > 0:
lst_subdirs.pop()
添加break
文件名的for循環後:
for root, dirs, filenames in os.walk(workdir):
for fileName in filenames:
print (fileName)
break #prevent decending into subfolders
這工作,因爲(默認) os.walk
首先列出請求的文件夾中的文件,然後進入子文件夾。
- 1. Python:在遞歸函數中的os.walk()
- 2. 避免無限遞歸與os.walk
- 3. 用os.walk遞歸搜索多個目錄()
- 4. 遞歸與非遞歸
- 5. 遞歸鎖(Mutex)與非遞歸鎖(Mutex)
- 6. 遞歸代碼非循環遞歸
- 7. 遞歸和非遞歸鎖(互斥鎖)
- 8. 性能:遞歸 - 非遞歸(IE)
- 9. 非遞歸製作
- 10. AVL樹非遞歸
- 11. os.walk非C盤目錄
- 12. 使用os.walk()以遞歸方式遍歷Python中的目錄
- 13. Python - 使用os.walk()的遞歸目錄命中()
- 14. 非遞歸makefile示例
- 15. 非遞歸階乘C
- 16. 非遞歸版本排列
- 17. 非遞歸DFS實現
- 18. Java - commons-io - listFiles非遞歸
- 19. 處理MSSQL非遞歸CTE
- 20. Python非遞歸排列
- 21. 非遞歸郵遞訂單遍歷
- 22. C++重寫一個遞歸函數爲非遞歸 - 涉及MPIR&非常困難
- 23. 三度樹的遞歸和非遞歸遍歷
- 24. 將遞歸函數更改爲非遞歸
- 25. 以下遞歸函數的非遞歸函數是什麼?
- 26. 自消息(非遞歸)vs自遞歸消息
- 27. 如何區分尾遞歸調用/非尾遞歸調用?
- 28. 轉換一個遞歸函數非遞歸
- 29. 非遞歸調用中的遞歸調用
- 30. 將遞歸函數轉換爲非遞歸函數
比我想象的還要簡單...謝謝! – 2010-11-07 12:14:35