You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用python-docx编辑.docx文本时图片未保留的问题排查

问题分析与解决

首先明确:你的代码没有删除图片,文件大小仅差4KB就能证明——如果190KB的图片真丢失了,文件大小应该至少减少190KB,而不是这点差异。那4KB的变化只是文本替换带来的格式、元数据微调。

为什么会产生“图片没保留”的错觉?因为python-docx里的图片和文本是分开存储的:

  • 嵌入式图片(和文字在同一段落的)属于段落的inline_shapes集合,不在run.text里,你的代码只修改了run的文本,根本碰不到这部分图片。
  • 浮动图片(比如文本框里、页眉页脚、浮在文字上方的)属于文档的shapes集合,你的代码也没处理这部分,自然也会被保留。

验证图片是否存在的方法

可以用一段简单代码确认:

from docx import Document

doc = Document("./doc_files/test_ploped.docx")
# 查看嵌入式图片数量
print("嵌入式图片数量:", len(doc.inline_shapes))
# 查看浮动图片数量
print("浮动图片数量:", len(doc.shapes))

如果输出的数量大于0,说明图片确实完整保留在新文档里了。

额外提示

如果打开新文档没看到图片,大概率是图片位置和替换后的"plop"文本挨在一起,或者原文档中图片和文字在同一段落,替换后文字变短,图片位置看起来不显眼,仔细找找就能看到。

内容的提问来源于stack exchange,提问作者Cactus Cata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:56:05