如何使用 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
我正在尝试遍历 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