0

我需要遍历我的所有文件夹以找到具有特定扩展名的文件的文件夹的文件路径(例如,我们会说.txt)。我不知道文件夹是在树的顶部还是在底部。

例如,我们开始于:

OneDrive/Documents/project/SourceCode

包含所有 .txt 文件的文件夹可能在OneDrive/Documents/project/SourceCode/TxtFiles其中,也可能在OneDrive/Documents/project/TxtFiles其中,也可能在项目文件之后。

我将如何找到文件路径?我尝试使用os.walk,但我对它的工作原理没有足够的了解。最后,我将所有.txt文件汇总到一个巨大的列表中。

4

2 回答 2

1

我建议使用pathlib

from pathlib import Path

base_path = Path('base/path/to/search/from')
text_file = next(base_path.glob('**/*.txt'))
parent_dir = text_file.parent.resolve()
于 2018-10-01T22:04:22.507 回答
0
from pathlib import Path
from pprint import pprint
import os

def find_files_of_ext(root, ext):
    return [str(Path(dir, file_)) for dir, subdir, files in os.walk(root) for file_ in files if Path(file_).suffix == ext]


filepaths = find_files_of_ext('C:/Users/username/OneDrive', '.jpeg' )
pprint(filepaths)
于 2018-10-01T21:30:25.673 回答