我是这个网站的新手,对 Python 也比较陌生。我目前正在做一个项目,该项目需要我编写一个递归搜索函数来查看文件和目录。该函数采用目录路径和搜索条件,在本例中为文件名,并且应该返回文件的完整路径,前提是它存在。
def search(path, file):
fullPath = path
inDir = os.listdir(path)
for element in inDir:
if os.path.join(path, file) == os.path.join(path, element):
fullPath = os.path.join(fullPath, file)
print(fullPath)
return fullPath
elif os.path.isdir(os.path.join(path, element)):
fullPath = search(os.path.join(path, element), file)
我知道 Python 中的递归需要递归调用的 return 语句,但我也尝试过:
def search(path, file):
fullPath = path
inDir = os.listdir(path)
for element in inDir:
if os.path.join(path, file) == os.path.join(path, element):
fullPath = os.path.join(fullPath, file)
print(fullPath)
return fullPath
elif os.path.isdir(os.path.join(path, element)):
return search(os.path.join(path, element), file)
和其他几种变体,但无济于事。第一个函数打印正确的路径,所以我知道递归中的某个点fullPath
包含正确的路径,但我似乎无法让函数返回除None
.