【发布时间】:2019-11-24 20:07:21
【问题描述】:
编写一个函数list_files_recursive,它返回所有parts.txt 文件的路径列表,而不使用os 模块的walk 生成器。相反,该函数应该使用递归。输入将是目录名称。 这是我到目前为止的代码,我认为它基本上是正确的,但是发生的事情是输出不是一个完整的列表?
def list_files_recursive(top_dir):
rec_list_files = []
list_dir = os.listdir(top_dir)
for item in list_dir:
item_path = os.path.join(top_dir, item)
if os.path.isdir(item_path):
list_files_recursive(item_path)
else:
if os.path.basename(item_path) == 'parts.txt':
rec_list_files.append(os.path.join(item_path))
print(rec_list_files)
return rec_list_files
这是我得到的输出的一部分(来自打印语句):
['CarItems/Honda/Accord/1996/parts.txt']
[]
['CarItems/Honda/Odyssey/2000/parts.txt']
['CarItems/Honda/Odyssey/2002/parts.txt']
[]
所以问题在于它不是一个列表,而且那里有空列表。我不太清楚为什么这不起作用,并且已经尝试了一切来解决它。任何帮助都非常感谢!
【问题讨论】:
-
感谢您的操作方法等。我会确保注意这一点并保持礼貌!
-
没问题。这次更新看起来很清晰。
标签: python-3.x list directory os.walk