我正在编写一个函数list_files_walk
,该函数使用parts.txt
模块的os
函数返回目录中所有walk
文件的路径的列表。
def list_filess_walk():
for dirpath, dirnames, filenames in os.walk("CarItems"):
if 'parts.txt' in dirpath:
list_files.append(filenames)
print(list_files)
return list_files
当前,list_files
仍为空。输出应该看起来像这样:
CarItems/Chevrolet/Chevelle/2011/parts.txt
CarItems/Chevrolet/Chevelle/1982/parts.txt
如何产生此输出?
您在这里几乎拥有它–我唯一要做的调整是:
list_files
在本地作用于函数。yield
关键字返回一个生成器,该生成器允许延迟获取下一个文件。parts.txt in dirpath
可能容易出错。我会使用endswith
或遍历dirnames
,这是当前目录中所有项目的列表。这里是一个例子:
import os
def list_files_rec(path, fname):
for dirpath, _, _ in os.walk(path):
if dirpath.endswith(fname):
yield dirpath
if __name__ == "__main__":
print(list(list_files_rec("CarItems", "parts.txt")))