def recursiveSearch(rootDir):
file = 'foundMe'
# Creates a full path back to the root directory with each item in list
for p in os.listdir(rootDir):
path = os.path.join(rootDir, p)
if os.path.isfile(path):
if os.path.splitext(os.path.basename(path))[0] == file:
print("congrats you found", path)
return path
else:
if os.path.isdir(path):
recursiveSearch(path)
x = recursiveSearch(rootDir)
print(x) ->>> None
为什么这个函数返回None类型而不是我找到的文件的路径?
当我运行该函数时,递归工作并能够找到并打印文件的路径,但不返回任何内容。有人可以解释一下原因吗?
答案 0 :(得分:3)
您没有明确return
递归调用的值,因此隐式地该函数会在None
分支中返回else
。相反,使用:
...
else:
if os.path.isdir(path):
return recursiveSearch(path)