回答
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. 用os.walk递归搜索多个目录()
- 2. 性能:递归 - 非递归(IE)
- 3. 递归和非递归锁(互斥锁)
- 4. 递归锁(Mutex)与非递归锁(Mutex)
- 5. Python非递归排列
- 6. 处理MSSQL非递归CTE
- 7. 非递归邮递订单遍历
- 8. C++重写一个递归函数为非递归 - 涉及MPIR&非常困难
- 9. 自消息(非递归)vs自递归消息
- 10. 转换一个递归函数非递归
- 11. 8递归递归的非攻击皇后算法
- 12. 从递归到非递归构建系统
- 13. 递归生成+过滤。更好的非递归?
- 14. 递归功能被转换成非递归函数
- 15. Java - SubSet和递归递归递归图
- 16. Javascript堆的算法(非递归)
- 17. CSS选择非递归li's Only
- 18. 非递归正线树遍历
- 19. 统计数据类型的非递归
- 20. 整数递归(非常基本)
- 21. Java非递归文件系统步行
- 22. 蚂蚁非递归文件集
- 23. 非递归JavaScript JSON解析器
- 24. SML:非递归过滤列表
- 25. 非递归多级生成文件
- 26. Python非递归深度优先搜索
- 27. 在C++中的非递归mergesort
- 28. 正确的方式做非递归使?
- 29. 递归搜索bst非键值
- 30. SFTP非空文件夹递归删除
比我想象的还要简单...谢谢! – 2010-11-07 12:14:35