Python - 读取pdf、word、excel、ppt、csv、txt文件提取所有文本

前言

本文对使用python读取pdf、word、excel、ppt、csv、txt等常用文件,并提取所有文本的方法进行分享和使用总结。

可以读取不同文件的库和方法当然不止下面分享的这些,本文的代码主要目标都是:方便提取文件中所有文本的实现方式。

这些库的更多使用方法,请到官方文档中查阅。

读取PDF文本:PyPDF2

python 复制代码
import PyPDF2

def read_pdf_to_text(file_path):
    with open(file_path, 'rb') as pdf_file:
        pdf_reader = PyPDF2.PdfReader(pdf_file)
    
        contents_list = []
        for page in pdf_reader.pages:
            content = page.extract_text()
            contents_list.append(content)
    
    return '\n'.join(contents_list)

read_pdf_to_text('xxx.pdf')

读取Word文本:docx2txt

doc需先手动转换成docx

python 复制代码
import docx2txt

def read_docx_to_text(file_path):
    text = docx2txt.process(file_path)
    return text

read_docx_to_text('xxx.docx')

读取excel文本:pandas

当然,pandas能读取的文件不仅仅是excel,还包括csv、json等。

python 复制代码
import pandas as pd

def read_excel_to_text(file_path):
    excel_file = pd.ExcelFile(file_path)
    sheet_names = excel_file.sheet_names

    text_list = []
    for sheet_name in sheet_names:
        df = excel_file.parse(sheet_name)
        text = df.to_string(index=False)
        text_list.append(text)

    return '\n'.join(text_list)

read_excel_to_text('xxx.xlsx')

读取ppt文本:pptx

python 复制代码
from pptx import Presentation

def read_pptx_to_text(file_path):
    prs = Presentation(file_path)
    
    text_list = []
    for slide in prs.slides:
        for shape in slide.shapes:
            if shape.has_text_frame:
                text_frame = shape.text_frame
                text = text_frame.text
                if text:
                    text_list.append(text)
    return '\n'.join(text_list)

read_pptx_to_text('xxx.pptx')

读取csv、txt其他文本:直接open,read()

python 复制代码
def read_txt_to_text(file_path):
    with open(file_path, 'r') as f:
        text = f.read()
    return text

read_txt_to_text('xxx.csv')
read_txt_to_text('xxx.txt')

读取任何文件格式

有了前面的所有函数,那我们可以写一个支持传任意格式文件的函数。

python 复制代码
support = {
    'pdf': 'read_pdf_to_text',
    'docx': 'read_docx_to_text',
    'xlsx': 'read_excel_to_text',
    'pptx': 'read_pptx_to_text',
    'csv': 'read_txt_to_text',
    'txt': 'read_txt_to_text',
}

def read_any_file_to_text(file_path):
    file_suffix = file_path.split('.')[-1]
    func = support.get(file_suffix)
    if func is None:
        return '暂不支持该文件格式'
    text = eval(func)(file_path)
    return text

read_any_file_to_text('xxx.pdf')
read_any_file_to_text('xxx.docx')
read_any_file_to_text('xxx.xlsx')
read_any_file_to_text('xxx.pptx')
read_any_file_to_text('xxx.csv')
read_any_file_to_text('xxx.txt')

结语

以上就是全部常见的文件格式的读取和提取所有文本的全部内容了。

更多其他的使用方法请查阅官方文档。

相关推荐
IT毕设梦工厂5 分钟前
计算机毕业设计选题推荐:基于大数据的房地产交易数据分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hive·hadoop·python·数据分析·spark·课程设计
Wx-bishekaifayuan9 分钟前
springboot生活商城系统21035-计算机课程设计、毕业设计
spring boot·后端·python·spring·elasticsearch·golang·课程设计
FYKJ_201021 分钟前
django药饮个性化推荐系统54839-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
天赐范式28 分钟前
天赐范式第175天:让活着的成员互相验证——异质互验与重放反伪造
python·数字生命·天赐范式·动态运行时·互验·重放反伪造
Wx-bishekaifayuan30 分钟前
springboot贵州旅游系统55916-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
计算机源码社33 分钟前
【27届大数据毕设】基于Hadoop的跨境二手车价格对比可视化分析系统-基于K-Means与FPGrowth的二手车价格影响因素挖掘研究
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
Thneonl5 小时前
Celery 生产踩坑:1000 任务积压与 acks_late 双重执行
后端·python
清桔5 小时前
模型的调用
python
小小张说故事6 小时前
Python 多线程为什么跑不快?asyncio 入门指南:异步并发从零上手
后端·python
10年前端老司机6 小时前
干货分享|企业智能知识库 Rerank 重排序落地实践与踩坑总结
python·aigc·agent