递归文件步行只打算一个深度下跌

我想对于可以走一个目录,返回递归文件步行只打算一个深度下跌

我有多层文件夹的麻烦中的所有文件分配创建代码,如

文件夹1
--->文件夹2
-------> foo.txt的

我有以下代码

def find_larger(path, max_n_results=10): 

files = []

print(path)

path_files = os.listdir(path)

for file in path_files:

if os.path.isdir(file):

files += find_larger(os.path.join(path, file))

files.append(file)

return files

print(find_larger('.'))

但是,如果我要运行的代码,我会得到以下结果

[文件夹1,文件夹2]

我曾经使用过此运行是一个调试器和程序未检测到第二目录实际上是一个目录。

我该如何让程序一路走过目录。

注意,我不允许用户os.walk

回答:

os.path.isdir()需要一个完整的路径,你只给它相对名称。首先创建路径,然后测试:

def find_larger(path, max_n_results=10): 

files = []

print(path)

path_files = os.listdir(path)

for file in path_files:

subpath = os.path.join(path, file)

if os.path.isdir(subpath):

files += find_larger(subpath)

files.append(subpath)

return files

但是,您要重新发明了这里的车轮上,只是用os.walk() function列出目录内容:

def find_larger(path, max_n_results=10): 

files = []

print(path)

for dirpath, dirnames, filenames in os.walk(path):

files += (os.join(dirpath, filename) for filename in filenames)

return files

以上是 递归文件步行只打算一个深度下跌 的全部内容, 来源链接: utcz.com/qa/258415.html

回到顶部