代码如下,文件夹A包含文件夹B,B包含文件夹C,循环的时候isdir(B)返回的是True,再循环的时候isdir(C)就返回False了,不对C下面的文件查找了。这是为什么?
import os
def search(directory):
print(directory)
for x in directory:
if os.path.isdir(x):
search(os.listdir(os.path.join(os.getcwd(),x)))
if '.' in os.path.basename(x):
print(os.path.basename(x))
search(os.listdir('.'))
首先给楼上的回答点了个赞,回答得非常好。
这是我修改后的代码:
在 Python 3.6.3 中运行结果是没有问题的!
另外,强烈建议使用内置函数进行目录遍历。
使用内置函数是最简便的方法。