如何在Python中按换行符拆分docx文件的字节内容为两部分?
问题解答
不能直接通过在二进制读取的字节内容c中查找'\n'来拆分文本和图片部分,核心原因如下:
- DOCX并非纯文本格式:DOCX本质是一个ZIP压缩包,内部包含XML结构文件、媒体资源文件(比如你的公式图片)等,和TXT这类按行存储的纯文本文件完全不同。你在Word里看到的“两行”是渲染后的视觉效果,底层存储中,文本和图片是相互独立的模块,不存在对应视觉换行的
'\n'分隔符。 - 二进制流中的
'\n'无对应意义:读取到的字节内容里的'\n',大概率是压缩包内部XML文件的格式换行符,和文档里的视觉行没有关联,用它拆分只会得到混乱的片段,根本无法区分出目标文本和图片部分。
如果要提取DOCX里的文本和图片,建议用专门的处理库,比如python-docx,示例代码如下:
from docx import Document doc = Document('text.docx') # 提取文本部分 for para in doc.paragraphs: if para.text.strip(): print("文本内容:", para.text) # 提取图片并保存 for rel in doc.part.rels.values(): if "image" in rel.target_ref: image_data = rel.target_part.blob with open('equation.png', 'wb') as img_file: img_file.write(image_data)
内容的提问来源于stack exchange,提问作者Linh Chi Nguyen
相关产品推荐
相关产品推荐

