gpt4 book ai didi

python - 如何有条件地跳过pd.read_html()中不包含表的html文件?

转载 作者:行者123 更新时间:2023-12-01 08:08:38 26 4
gpt4 key购买 nike

我想迭代本地计算机上的多个目录,每个目录都包含一个 HTML 文件。我将每个文件的路径存储在列表变量中,但现在我想迭代每个文件并将其读入诸如 pd.read_html 之类的内容,以便从 HTML 文件中提取表信息。但是,某些文件不包含任何表,因此会抛出错误ValueError:找不到表。这个错误当然是预料之中的,我只需要跳过这些错误所需的逻辑帮助。

我已经尝试阅读 pd.DataFrame (此处: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html )和 pd.read_html (此处: https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.read_html.html )文档,但我可以找不到我正在寻找的逻辑。

这就是我到目前为止所做的

# initialize the path
p = Path('C:/path/to/directories/')

# glob all html file paths into list of paths
html_paths = [file for file in p.glob('**/*.html')]

现在我有了一个我想要迭代并读入 pd.read_html 的路径列表。我可以使用以下代码轻松完成此操作:

# initialize empty data frame to append pd.read_html() output to
html_files = pd.DataFrame()

# iterate over each file and read in using pandas
for p in html_paths:
html_files.append(pd.read_html(str(p)))

但是,因为我的一些 html 文件不包含任何表,所以当我的 for 循环迭代这些文件时,我会收到错误。我想要一种在阅读这些文件时跳过没有表格的文件的方法,这样它就可以继续附加其余文件,而不是破坏代码。

最佳答案

你可以简单地这样做

for p in html_paths:
try:
html_files = html_files.append(pd.read_html(str(p)))
except ValueError:
pass

关于python - 如何有条件地跳过pd.read_html()中不包含表的html文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55404553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com