Return 所有 parts.txt 文件的路径列表

Return list of the paths of all the parts.txt files

使用 os 模块的行走生成器,编写一个函数 list_files_walk 来 returns 所有 parts.txt 文件的路径列表。该函数不接受输入参数。

def list_files_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) 支持os看起来类似于:

CarItems/Chevrolet/Chevelle/2011/parts.txt
CarItems/Chevrolet/Chevelle/1982/parts.txt

我怎样才能产生这个输出?

你很接近。出于某种原因,您在 dirpath 中搜索 parts.txt 而您应该在 filenames 中搜索它:

def list_files_walk():
    results = []
    for dirpath, dirnames, filenames in os.walk("CarItems"):
        for f in filenames:
            if f.endswith('parts.txt'):
                results.append(os.path.join(dirpath, f))
    return results

我使用 endswith 因为它比仅仅询问 "parts.txt" 是否在某处 in 文件名更准确,但在大多数情况下这也有效:

def list_files_walk():
    results = []
    for dirpath, dirnames, filenames in os.walk("CarItems"):
        for f in filenames:
            if 'parts.txt' in f:
                results.append(os.path.join(dirpath, f))
    return results