首页 > 编程语言 >Python读取pdf、word、excel、ppt、csv和txt文件提取所有文本

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

时间:2023-11-16 10:34:14浏览次数:48  
标签:word Python text read file pdf path txt

前言

本文对使用python读取pdf、word、excel、ppt、csv、txt等常用文件,并提取所有文本的方法进行分享和使用总结。
可以读取不同文件的库和方法当然不止下面分享的这些,本文的代码主要目标都是:方便提取文件中所有文本的实现方式。
这些库的更多使用方法,请到官方文档中查阅。

读取PDF文本:PyPDF2

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

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等。

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

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()

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')

读取任何文件格式

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')

标签:word,Python,text,read,file,pdf,path,txt
From: https://www.cnblogs.com/HeroZhang/p/17835655.html

相关文章

  • python3修改安全组
    场景:办公网络访问云资源,公司出口IP会变,试试更新到安全组脚本如下:#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2023/11/1513:12#@File:security_group.py#@Author:zk_linux#@Software:PyCharm#@Description:importjsonimportsocketfro......
  • Python 获取指定目录所有深层文件路径(包括子目录下的所有文件)
    importosdefget_all_deep_files_in_folder(folder_path):all_files=[]file_paths=os.listdir(folder_path)foriteminfile_paths:fp=os.path.join(folder_path,item)ifos.path.isfile(fp):all_files.append(fp)......
  • python 读取社保年度对账单数据
    """python读取社保年度对账单pdf数据"""importpandasaspdimportpdfplumberpd.set_option('display.width',None)pd.set_option('display.max_rows',None)pd.set_option('display.max_columns',None......
  • python:第八章:macos为python配置环境变量(3.12.0)
    一,查看老版本的python信息:1,启动终端,查看旧的python的版本liuhongdi@192~%python--version Python3.9.12,查看旧的pytnon的安装路径 liuhongdi@192~%whichpython python:aliasedto/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9二......
  • python:第七章:macos安装python(3.12.0)
    一,下载python点击Downloads->macOS:点击安装包链接下载:二,安装双击下载的安装包,进入安装界面,点继续按钮,如图:一步一步点击继续,此处点击同意按钮:此处点击安装按钮:安装完成后点击关闭按钮即可,如图:说明:刘宏缔的架构森林—专注it技术的博客,网站:https://blo......
  • Picamera2 Python library
    安装目前2022年之后的镜像已经预装了picamera2,如果需要安装使用sudoaptinstall-ypython3-picamera2此包会安装X-windows和GUI依赖,如果不需要使用,sudoaptinstall-ypython3-picamera2--no-install-recommands也可以使用pip安装sudoaptinstall-ypython3-li......
  • Python连接Oracle
    报错信息: Traceback(mostrecentcalllast):cx_Oracle.DatabaseError:DPI-1047:Cannotlocatea64-bitOracleClientlibrary:"libclntsh.so:cannotopensharedobjectfile:Nosuchfileordirectory".Seehttps://cx-oracle.readthedocs.io/en/latest/......
  • 基于Python的热门旅游景点数据分析系统的设计与实现-计算机毕业设计源码+LW文档
    开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:PyCharm浏览器:谷歌浏览器DROPTABLEIFEXISTS08375_menpiaoxinxi;/*!40101SET@saved_cs_client=@@character_set_client/;/!40101SETcharacter_set_cl......
  • 基于Python的高校成绩分析-计算机毕业设计源码+LW文档
    摘 要随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于网络的广泛应用给生活带来了十分的便利。所以把高校成绩分析与现在网络相结合,利用计算机搭建高校成绩分析系统,实现高校成绩分析的信息化。则对于进一步提高高校成绩分析管理发展,丰富高校成绩分析管理经验......
  • python相关命令
    管理员权限:set-executionpolicyremotesignedpython-Vnvidia-smipython-mvenvvenv./vevn/Scripts/activate.batorvenv\Scripts\Activate.ps1pip3installtorchtorchvisiontorchaudio--index-urlhttps://download.pytorch.org/whl/cu116pipinstall-rrequir......