如何复制保存MHTML内容?Python读写后Chrome打开报错如何解决
问题原因
- 核心问题是你使用了文本模式读写MHTML文件:
- MHTML属于多部分归档格式,内部不仅包含文本内容,还嵌入了图片、样式、字体等二进制资源,严格要求字节级的结构完整性
- 文本模式下Python会默认使用系统编码解码文件内容,同时会自动转换不同操作系统的换行符(比如macOS下将
\r\n转为\n),直接破坏了MHTML的多部分边界结构,所以Chrome会识别为损坏的归档文件 - 你肉眼观察到内容一致,是因为文本部分没有明显变化,但二进制资源和结构标记已经被隐性修改了
解决方法
改用二进制模式读写文件,保证所有字节原样复制,修改后的代码如下:
with open(file_path, 'rb') as mht: content = mht.read() with open('/Users/mac/Downloads/new.mht', 'wb') as mht2: mht2.write(content)
如果需要对MHTML的文本内容做修改,读取后可按MHTML头部声明的编码(通常是utf-8或者latin-1)解码,修改完成后再用相同编码转成二进制写入即可,不要用系统默认编码处理。
内容的提问来源于stack exchange,提问作者user1349923
相关产品推荐
相关产品推荐

