如何使用 python 遍历多个文件夹中的所有文件

How to iterate over all files in multiple folders with python

我正在尝试遍历 directory 中的所有目录并在其中找到所有 .html 文件。到目前为止我有这个代码:

def find_path():
"""

:return: List
"""
paths = []
for filename in os.listdir(DIRECTORY):
    if filename.endswith('.html'):
        fname = os.path.join(DIRECTORY, filename)
        with open(fname, 'r') as f:
            soup = BeautifulSoup(f.read(), 'html.parser')
            path = soup.select_one('#tree > li > span').contents[-1]
            paths.append(path)
return paths

但它只有在所有 .html 文件都在一个目录中时才有效。我需要的是遍历此目录中的所有 .html 文件并保存它,但是对于该目录中的每个目录,还有我需要访问的 .html 文件。所以理想情况下,我需要在我的父目录中打开所有这些目录,并从 .html 文件中保存我需要的任何内容。有办法吗?

谢谢!

os.walk()可以帮到你

import os


def find_path(dir_):
    for root, folders, names in os.walk(dir_):
        for name in names:
            if name.endswith(".html"):
                # Your code
                pass

您可以使用下面的示例片段 #1 或 #2 都有效:

import os
path = "."
for (root, dirs, files) in os.walk(path, topdown=True):
    for file in files:
        if file.endswith(".html"):
            print(root+"/"+file)                #1
            print(os.path.join(root+"/"+file))  #2