gpt4 book ai didi

python - 在 Python 中列出子目录中的文件 - mindepth & maxdepth

转载 作者:行者123 更新时间:2023-11-28 20:43:37 26 4
gpt4 key购买 nike

我想打印子目录中的文件,该子目录位于根目录的 2 级内部。在 shell 中,我可以使用下面的查找命令

find -mindepth 3 -type f
./one/sub1/sub2/a.txt
./one/sub1/sub2/c.txt
./one/sub1/sub2/b.txt

在 python 中我怎样才能完成这个。我知道 os.walk、glob 和 fnmatch 的基本语法。但是不知道如何指定限制(比如 bash 中的 mindepeth 和 maxdepth)

最佳答案

您可以使用 .count() 方法来查找深度:

import os

def files(rootdir='.', mindepth=0, maxdepth=float('inf')):
root_depth = rootdir.rstrip(os.path.sep).count(os.path.sep) - 1
for dirpath, dirs, files in os.walk(rootdir):
depth = dirpath.count(os.path.sep) - root_depth
if mindepth <= depth <= maxdepth:
for filename in files:
yield os.path.join(dirpath, filename)
elif depth > maxdepth:
del dirs[:] # too deep, don't recurse

例子:

 print('\n'.join(files(mindepth=3)))

The answer to the related question uses the same technique .

关于python - 在 Python 中列出子目录中的文件 - mindepth & maxdepth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28622452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com