为什么os.path.isdir() 在判断第二层文件夹的时候返回false?

代码如下,文件夹A包含文件夹B,B包含文件夹C,循环的时候isdir(B)返回的是True,再循环的时候isdir(C)就返回False了,不对C下面的文件查找了。这是为什么?
importos
defsearch(directory):
print(directory)
forxindirectory:
ifos.path.isdir(x):
search(os.listdir(os.path.join(os.getcwd(),x)))
if'.'inos.path.basename(x):
print(os.path.basename(x))
search(os.listdir('.'))
汪汪一只猫
浏览 696回答 2
2回答

互换的青春

首先给楼上的回答点了个赞,回答得非常好。这是我修改后的代码:importosdefsearch(directory):print(directory)forxindirectory:ifos.path.isdir(x):os.chdir(x)#进入到新目录search(os.listdir('.'))os.chdir(os.path.abspath('..'))#退出到父目录if'.'inos.path.basename(x):print(os.path.basename(x))search(os.listdir('.'))在Python3.6.3中运行结果是没有问题的!另外,强烈建议使用内置函数进行目录遍历。foriinos.walk('.'):print(i)使用内置函数是最简便的方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript