求大神解答
Topic sourceif filename in d: return subDir 你看看你的逻辑里面,这个return是不是返回了findFile(filename, subDir),而不是最终的返回。也就是说接下来还要继续执行下面这一段 if filename in d: return subDir
改成这样才对 import os,sys,pdb
def findFile(filename, dir='.'): i=0 for d in os.listdir(dir): subDir = os.path.join(os.path.abspath(dir), d) if os.path.isdir(d): findFile(filename, subDir)
if filename in d:
print(subDir)
#return subDir
return None
if os.path.isdir(d):
if findFile(filename, subDir) != None:
return findFile(filename, subDir)
花了一上午看这个,总算搞出个半成品。不支持子目录下多个文件包含filename的情况。
import os,sys,pdb
l = []
def findFile(filename, dir='.'): for d in os.listdir(dir): subDir = os.path.join(os.path.abspath(dir), d) if os.path.isdir(d): findFile(filename, subDir) elif filename in d: l.append(subDir)
findFile('logging') print(l)
包含多个filename的情况。
- 1
力弹则折
请问,为什么 if filename in d: return subDir 中的return语句不会执行?