为何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'))
额外提醒
- 确保你安装的是官方的
python-docx库,安装命令:pip install python-docx - 尽量避免使用来源不明的
readDocx模块,这类模块往往没有维护,容易和官方库产生冲突 - 如果一定要用
readDocx,请检查该模块的文档,确认它是否会自动输出内容,或者是否需要调整调用方式来避免重复输出
内容的提问来源于stack exchange,提问作者darla_sud
相关产品推荐
相关产品推荐

