我需要遍历所有文件夹,以找到具有特定扩展名的文件的文件夹的文件路径(例如,我们将说.txt
)。
我不知道文件夹是在树的顶部还是在树的底部。
例如,我们开始于:
OneDrive/Documents/project/SourceCode
包含所有.txt文件的文件夹可以位于OneDrive/Documents/project/SourceCode/TxtFiles
中,也可以位于OneDrive/Documents/project/TxtFiles
中,或者也可以超过项目文件。
我如何找到文件路径?我尝试使用os.walk
,但对它的工作方式没有足够的了解。最后,我将所有.txt
文件放到一个巨大的列表中。
答案 0 :(得分: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()
答案 1 :(得分: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)