遍历文件夹以打开特定类型的文件

Iterate through folders to open files of a specific type

对于我正在目录中查找的脚本,我想打开该目录中的所有 .ifc 文件,包括所有子文件夹。为此,我使用了 os 包。

我遇到的问题是为我需要打开的子文件夹创建正确的路径。在 os.path.join 中包含子目录不会给出预期的结果,因为主文件夹会被跳过。我该如何着手创建正确的路径?

我已经包含了目录的 MWE 和我当前正在实现的代码的 MWE。

我要打开的目录的 MWE:

MWE:

import os
import tinker as tk
from tkinter import filedialog

#Select directory
root = tk.Tk()
root.withdraw()
directory = filedialog.askdirectory()

for root,subdir,files in os.walk(directory):
    #Select only .ifc files
    for filename in files:
        if filename.endswith(".ifc"):
            #Construct full filepath for open
            ifc_filepath = os.path.join(root,filename)

            #Open the .ifc file
            ifc_file = open(ifc_filepath)
         else:
            continue

为什么不使用 glob?

from pathlib import Path
from os.path import join


base_dir = './test'
file_extension = 'xml'

for file_path in Path(base_dir).glob(f'**/*.{file_extension}'):
    file_path = join(base_dir, file_path)
    print(file_path) # do whatever you need with these files