使用rtfparse包遇FileNotFoundError:路径排查无效求技术支持
解决rtfparse包FileNotFoundError问题
问题排查与解决方案
先确认文件真实存在
手动导航到报错路径D:\pythonCodePycharmProjects\carProject\rtf\test.rtf,检查:- 文件夹
rtf是否存在,有没有拼写错误 - 文件
test.rtf是否存在,文件名大小写、后缀有没有写错(比如误写成test.RTF或test.txt) - 文件是否被隐藏,开启文件夹的「显示隐藏文件」选项再确认
- 文件夹
将Path对象转为字符串传入
从报错的包源码来看,rtfparse的parse_file方法直接调用open(self.rtf_path)打开文件,部分旧版本的包可能不支持pathlib.Path对象作为参数,试试把路径转成字符串:parser = Rtf_Parser(rtf_path=str(source_path))验证路径有效性
在代码里添加验证逻辑,确认路径是否正确指向存在的文件:import pathlib from rtfparse.parser import Rtf_Parser from rtfparse.renderers import de_encapsulate_html source_path = pathlib.Path(r"D:\pythonCodePycharmProjects\carProject\rtf\test.rtf") # 打印验证结果,正常应输出True print(source_path.exists()) print(source_path.is_file()) target_path = pathlib.Path(r"D:\pythonCodePycharmProjects\carProject\rtf\test.html") parser = Rtf_Parser(rtf_path=str(source_path)) parsed = parser.parse_file() renderer = de_encapsulate_html.De_encapsulate_HTML() with open(target_path, mode="w", encoding="utf-8") as html_file: renderer.render(parsed, html_file)检查文件权限
确认当前Python进程有权限读取该文件:比如文件是否被Word等程序锁定,或者当前用户没有读取权限,可以尝试把文件复制到桌面,用桌面路径测试。
内容的提问来源于stack exchange,提问作者ayex
相关产品推荐
相关产品推荐

