使用BeautifulSoup4读取同目录HTML文件报FileNotFoundError如何解决
问题1:文件名不匹配
你代码中指定读取的文件名为index.html,但从提供的目录结构可知,同目录下的HTML文件实际名称为math_page.html,二者名称不一致会直接触发文件不存在报错。
修复方式:将代码中打开的文件名替换为实际存在的文件名即可,修改后代码如下:
from bs4 import BeautifulSoup with open("math_page.html", "r") as f: doc = BeautifulSoup(f, "html.parser")
问题2:运行时工作目录与脚本目录不匹配
如果修改文件名后仍有报错,是因为运行Python脚本时的当前工作目录不是main.py所在的目录,相对路径默认基于工作目录解析,而非脚本自身所在目录。
修复方式:通过__file__变量定位脚本所在的绝对路径,再拼接目标HTML文件路径,消除相对路径的解析歧义,代码示例如下:
import os from bs4 import BeautifulSoup # 获取当前脚本所在目录的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接得到HTML文件的绝对路径 html_path = os.path.join(script_dir, "math_page.html") with open(html_path, "r") as f: doc = BeautifulSoup(f, "html.parser")
内容的提问来源于stack exchange,提问作者Pablo Tamayo
相关产品推荐
相关产品推荐

