Python 中递归遍历所有目录直到找到某个文件的最佳方法是什么? 我想查看目录中的所有文件,看看我要查找的文件是否在该目录中。 如果找不到它,我会转到父目录并重复该过程。我也想数数 在找到该文件之前我浏览了多少个目录和文件。如果该处没有文件 循环结束返回没有文件
startdir =“用户/..../file.txt”
findfile 是文件名。这是我当前的循环,但我想使用递归使其工作。
def walkfs(startdir, findfile):
curdir = startdir
dircnt = 0
filecnt = 0
for directory in startdir:
for file in directory:
curdir = file
if os.path.join(file)==findfile:
return (dircnt, filecnt, curdir)
else:
dircnt+=1
filecnt+=1
最佳答案
不要重新发明目录递归轮。只需使用 os.walk()
function ,它为您提供了一个递归遍历目录的循环:
def walkfs(startdir, findfile):
dircount = 0
filecount = 0
for root, dirs, files in os.walk(startdir):
if findfile in files:
return dircount, filecount + files.index(findfile), os.path.join(root, findfile)
dircount += 1
filecount += len(files)
# nothing found, return None instead of a full path for the file
return dircount, filecount, None
关于python - Python中递归遍历所有目录,直到找到某个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879638/