三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

pandas.read_html 报错FileNotFoundError、OSError Traceback (most recent call last)

pandas.read_html 报错FileNotFoundError、OSError Traceback (most recent call last)

一、最终方案

适配 Pandas 2.x / 3.x 所有版本,彻底解决跨设备报错

核心逻辑:将 HTML 字符串包装为内存文件流,强制让 pandas 识别为文本而非文件路径,规避新版版本路径判定BUG

import io import pandas as pd # self_table 为 HTML 表格字符串(str) df = pd.read_html(io.StringIO(self_table))[0]

二、问题现象

  • 本机环境:代码正常运行,无报错,可正常解析网页表格

  • 另一台设备环境:相同代码直接抛出FileNotFoundError / OSError

  • 报错核心特征:pandas 将 HTML 标签字符串识别为本地文件路径,提示No such file or directory: <html>...</html>

三、环境差异(根本诱因)

环境Pandas版本Lxml版本兼容行为
本机(正常)2.0.3(旧版)4.9.3宽松识别:带<标签的字符串 → 判定为HTML文本
其他设备(报错)3.0.3(新版)6.1.1严格识别:普通字符串优先判定为本地文件路径

报错截图

四、踩坑全过程复盘

  • 增加str包裹self_table,仍然报错
  • 增加str、且手动包裹完整<html><body>外壳,依旧报错
← 返回列表