首页 > 编程语言 >python 读取word、pdf文件内容

python 读取word、pdf文件内容

时间:2025-01-22 11:44:12浏览次数:1  
标签:docx word filepath python content texts table pdf row

import docx2txt
import fitz
import docx
from docx.oxml import parse_xml


def get_doc_content(filepath):
    """获取word文本内容"""
    try:
        doc = docx.Document(filepath)
        content = []
        for element in doc.element.body:
            if element.__class__.__name__ == 'CT_P':  # 段落
                paragraph = docx.text.paragraph.Paragraph(parse_xml(element.xml), parent=None)
                content.append(paragraph.text)
            elif element.__class__.__name__ == 'CT_Tbl':  # 表格
                table = docx.table.Table(element, parent=None)
                table_texts = []
                for row in table.rows:
                    row_texts = []
                    for cell in row.cells:
                        if cell.text not in row_texts:
                            row_texts.append(cell.text)
                        else:
                            row_texts.append("")
                    table_texts.append("|".join(row_texts))
                content.append("\n".join(table_texts))
        content = "\n".join(content)
    except Exception:
        content = docx2txt.process(filepath)
    return content


def get_pdf_content(filepath):
    content = ""
    with fitz.Document(filepath) as doc:
        for page in doc:
            content += page.get_text()
    return content


def get_file_content(filepath):
    try:
        if filepath.endswith(".docx"):
            content = get_doc_content(filepath)
        elif filepath.endswith(".pdf"):
            content = get_pdf_content(filepath)
        elif filepath.endswith(".txt"):
            with open(filepath, "r", encoding="utf-8") as f:
                content = f.read()
        else:
            content = None
    except:
        content = None
    return content

标签:docx,word,filepath,python,content,texts,table,pdf,row
From: https://www.cnblogs.com/lanjianhua/p/18685456

相关文章

  • 使用Python3.8写的代码比Python3.10写的性能差吗?
    一般情况下,Python3.10的性能是要好于Python3.8的。那么是否意味着同等条件下,使用Python3.8写出来的代码要比Python3.10写出来的代码性能差呢?笔者曾经写过一个项目,项目一开始使用Python3.8。重构时,因为3.8不支持某些功能,一度将Python版本升到了Python3.10。升到3.10......
  • 2024清华大学:大模型安全实践白皮书(附42页完整PDF下载)
    该文件详细分析了金融、医疗、政务、人力资源以及智能助理等领域中大模型的安全实践案例,探讨了安全性、可靠性、可控性技术的最新研究进展,并针对大模型的风险挑战提出了系统化的应对策略。报告还展望了大模型技术的未来发展趋势,并提出了包含政府监管、生态培育、企业自律、......
  • Linux部署Python Web服务
    以下展示了在Linux上部署Flask应用时,使用 Nginx和Gunicorn 配合的两种绑定方式:绑定端口 和 绑定UNIX套接字(.sock) 的完整流程。1.准备工作确保已经安装以下组件:sudoaptupdatesudoaptinstallpython3python3-pippython3-venvnginx创建Flask项目......
  • Python可视化神器1-Pyecharts绘图详细教程-初识Pyecharts
    前言文档位于 pyecharts-APythonEchartsPlottingLibrarybuiltwithlove.示例位于 Documentecharts官网 https://www.echartsjs.com/zh/index.html1.简介1.1Pyecharts是什么Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众......
  • 使用python gitlab包来实现更新gitlab wiki page
    可以使用Python的python-gitlab包来实现对GitLab项目Wiki页面内容的更新。GitLab的Wiki页面支持通过API进行读取、创建和更新,而python-gitlab包提供了对这些API的封装。使用python-gitlab更新Wiki页面安装python-gitlab确保已安装python-gitlab......
  • Python运算符
    1、算术运算符加+ 减—  乘* 除/ 整除// 取余% 幂运算**优先级:第1级:**第2级:*,/,%,//第3级;+,-print("加",1+4)print("减",8-19)print("乘",8*3)print("除",8/3)print("整除",8//3)print("取余",8%3)print(......
  • 带 `$` 符号的 Redis 密码在 Flink 调度脚本中被截断的解决方案 WRONGPASS invalid us
    在实际生产使用中,如果你的Redis密码中包含$符号,而你又通过调度脚本(如DolphinScheduler)或Shell参数方式传递给Flink,就可能造成密码被部分截断,进而导致:WRONGPASSinvalidusername-passwordpairoruserisdisabled这是因为Shell解释$为变量展开符,后续字符被当作环......
  • ✅毕业设计:基于python商品销售数据分析可视化系统 ARIMA 时序预测模型 淘宝商品数据分
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • 大数据毕业设计:python商品销售数据实时分析可视化大屏 购物商品销售数据 营收数据分析
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • python装饰器底层原理
    什么是装饰器装饰器是Python中的一种特殊函数,主要用于修改或扩展其他函数或方法的功能,而无需修改函数本身的代码。它们通常通过在函数定义前加上@装饰器名称来使用。@decorator_functiondefmy_function():pass​  装饰器的基本结构一个基本的装饰器包含一个函......