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

为何Python仅一个print()却输出两次?python-docx使用问题求助

解决Python读取docx时print输出两次内容的问题

嘿,我之前折腾python-docx的时候也碰到过类似的坑!让我来帮你分析下问题出在哪,以及怎么解决~

可能的原因分析

从你的描述和代码片段来看,核心问题大概率出在同时混用了python-docx和readDocx两个模块上:

  • 有些第三方的readDocx模块(非官方)在导入或执行读取操作时,可能会默认输出读取到的内容;
  • 或者你的getText函数里不小心同时调用了两个模块的读取逻辑,导致文本被读取了两次,最终print的时候就输出了两遍相同内容。

另外,你提到的demo.docx里的6行内容,其实对应docx里的6个段落,正常读取应该只输出一次。

修正后的解决方案

建议直接使用官方的python-docx库来实现读取功能,不要混用其他非正规的readDocx模块,以下是正确的代码示例:

import docx

def getText(filename):
    # 初始化docx文档对象
    doc = docx.Document(filename)
    # 存储所有段落文本的列表
    full_text = []
    # 遍历每个段落,提取文本
    for para in doc.paragraphs:
        full_text.append(para.text)
    # 把段落文本用换行符拼接成完整字符串
    return '\n'.join(full_text)

# 调用函数并打印结果
print(getText('demo.docx'))

额外提醒

  1. 确保你安装的是官方的python-docx库,安装命令:pip install python-docx
  2. 尽量避免使用来源不明的readDocx模块,这类模块往往没有维护,容易和官方库产生冲突
  3. 如果一定要用readDocx,请检查该模块的文档,确认它是否会自动输出内容,或者是否需要调整调用方式来避免重复输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:34:46