Python办公自动化 获取文本数据 支持多种类型文件

学好办公自动化,走遍天下都不怕!!

        前面我们已经学习了,如何用python的下载安装以及入门基础知识,并且也知道如何使用python自动处理Excel文件数据、如何批量生成Word文件、如何对数据分析后生成洞察报告、如何用python实现自动发送包含附件的邮件等。

        今天我们主要学习python如何获取文本数据,比如获取word文件以及pdf文件的文本转换成txt类型的文件,为了方便使用,对代码进行封装,支持多种文件类型的工具。有问题请在评论区留言交流,谢谢。

目录

1. 安装下载以及导入

2.代码实现

3.运行结果

3.1 遇到一个问题

4.总结


1. 安装下载以及导入

需要的包文件都在下面了

# 导入需要的包和文件
import os,fnmatch
from win32com import client as wc
from win32com.client import Dispatch

2.代码实现

目前程序支持 doc | docx | pdf 文件类型。

1.根据文件的地址切分后得到文件的路径和文件名称

2.根据文件的后缀名生成新的txt后缀的文件名

3.设置新的保存路径 4.加载文本提取的处理程序 5.保存文件

#定义方法
#文件转换成txt文件,该方法两个参数:
#1.文件路径 需要转换的文件地址 2.保存路径 转换成txt文件之后保存的地址
def FilesToText(filePath,savePath=''):# 1.切分文件路径为文件目录和文件名dirs,filename = os.path.split(filePath)# print(dirs,'\n',filename)# return# 2.修改切分后文件的后缀typename= os.path.splitext(filename)[-1].lower() #获取文件后缀new_name = TranType(filename,typename)# print(typename,new_name)# 3.设置新的文件保存路径if savePath == '':savePath = dirselse:savePath = savePathnewtxtPath = os.path.join(savePath,new_name)# print('!!!!',newtxtPath)   # 4.加载文本提取的处理程序,word 转换 txtwordapp = wc.Dispatch('Word.Application')mytxt = wordapp.Documents.Open(filePath) print(filePath)  print(wordapp,'\n',mytxt)# 5.保存文本信息mytxt.SaveAs(newtxtPath,4) # 参数4代表抽取文本mytxt.Close()def TranType(filename,typename):new_name = ''if typename == '.pdf':if fnmatch.fnmatch(filename,'*.pdf'):new_name = filename[:-4]+'.txt'else:returnelif typename == '.doc' or '.docx':if fnmatch.fnmatch(filename,'*.doc'):new_name = filename[:-4]+'.txt'elif fnmatch.fnmatch(filename,'*.docx'):new_name = filename[:-5]+'.txt'            else:returnelse:print('转换失败 格式不正确无法转换')returnreturn new_nameif __name__=='__main__':filePath1 = os.path.abspath(r'../demo/file/年终总结模板.doc') filePath2 = os.path.abspath(r'../demo/file/2024年终总结模板.docx') filePath3 = os.path.abspath(r'2023项目汇报.pdf') FilesToText(filePath2)  

3.运行结果

现在我们运行项目,我们分别拿doc和docx文件、pdf文件做测试,看是否能转换成txt文件。

D:\CODE\VSCODE\python\demo> python wordtotxt.py

 

 可以看到docx和doc文件分别生成了对应的txt文件。

3.1 遇到一个问题

但是在执行pdf文件的时候出现了一个问题,Documents.Open()返回结果为none,代码以及报错截图如下图所示,经过查找filePath也是有数据的,wordapp也是有数据的,就是执行结果mytxt是none,但是执行的时候pdf文件是自动打开的,文件路径也没有问题。

 

如果小伙伴有遇到相同的问题以及解决方案,麻烦评论区留言分享一下,感谢。 

4.总结

本篇文章主要介绍了,后缀doc和docx结尾的word文件、pdf文件如何通过python转换成txt文件。

首先需要安装下载导入包、代码实现文件类型转换、最终实现文件类型的转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React中实现antd自定义图标,鼠标悬浮变色

借助 antd 的 tooltip 组件来实现 hover 时变色的效果 1.新建组件 自定义图标一般在iconfont上面获取,复制下来的svg代码,切记要删除 fill 属性后添加到组件中 import { Tooltip } from "antd"; import React from "react";const …

webpack4手动搭建Vue项目

小满视频 很多解释使用通义灵码搜的,通义灵码的搜索结果也是有错误的全程使用pnpm包管理工具,和npm的用法基本一样 学习总结 1. 多看看webpack官网 2. webpack的作用:配置一堆东西,达到运行程序的目的 3. 无论什么东西都转成js,…

理解数据库系统的内部结构

数据库系统在我们的数字世界中扮演着关键角色。本文将介绍数据库系统的内部结构,帮助初学者了解其基本概念。 数据库系统的三级模式 数据库系统内部采用三级模式二级映像结构,包括外模式、模式和内模式。这种结构确保了数据的逻辑独立性和物理独立性。…

如何在Android项目中进行性能优化分析?

引言 在开发过程中,性能优化是一个重要的话题。用户对于应用的性能有着非常高的期望:快速启动、流畅的操作体验、低内存消耗等。那么,作为开发者,我们如何才能在项目中进行性能优化分析呢?今天就来和大家聊聊这个话题…

Linux常见基础命令

Linux基础 初级学习阶段需要了解的知识一、Linux基础命令查阅命令帮助信息1.man2.help Linux命令的基本实用目录操作文件内容操作查看某文件下的用户操作日志压缩和解压缩sudo用户权限操作用户权限操作TOP文件安装 上一篇 VMware安装linux环境 初级学习阶段需要了解的知识 1.…

什么是 AWS CloudWatch?

AWS CloudWatch 是 AWS 提供的一项全面的监控和可观测性服务,使用户能够收集和可视化指标、日志和事件;设置警报;并根据预定义的条件自动执行操作。CloudWatch 提供对 AWS 资源和应用程序的运行状况、性能和运行状态的深入了解,使…

autoware整体架构的分析

autoware framework sensinglidar driver(lidar驱动)PointCloud Preprocessing(点云预处理)Detection(检测)GNSS (全球导航卫星系统)IMU (惯性测量单元) Localization(定位)Pose Ini…

#Datawhale X 李宏毅苹果书 AI夏令营#1.2了解线性模型

1.2线性模型 什么是线性模型? 初始模型:, 其中y表示观看人数,x1表示前一天的观看人数,这个模型就是在用前一天的观看人数来预测当前的观看人数。 模型改进: 然而真实的数据是有周期性的,每隔7天&#…

这本大模型书一定要读!李开复、周鸿祎都强烈推荐的《实战AI大模型》(附PDF)

《实战AI大模型》是一本旨在填补人工智能(AI)领域(特别是AI大模型)理论与实践之间鸿沟的实用手册。书中介绍了AI大模型的基础知识和关键技术,如Transformer、BERT、ALBERT、T5、GPT系列、InstructGPT、ChatGPT、GPT 4、…

无人机之云台的作用

无人机云台在无人机技术中扮演着至关重要的角色,其作用主要体现在以下几个方面: 一、 确保拍摄稳定性 防抖动:无人机在飞行过程中,尤其是在复杂环境下,如遇到风力干扰或进行高速飞行时,机身容易产生震动和…

Prometheus+Grafana的安装和入门

概念 什么是Prometheus? Prometheus受启发于Google的Brogmon监控系统(相似kubernetes是从Brog系统演变而来), 从2012年开始由google工程师Soundclouds使用Go语言开发的开源监控报警系统和时序列数据库(TSDB)。,并且与2015年早起…

【Linux —— POSIX信号量 - 基于环形队列的生产消费模型】

Linux —— POSIX信号量 - 基于环形队列的生产消费模型 POSIX信号量信号量的概念POSIX信号量的类型信号量的操作 POSIX信号量函数基于环形队列的生产消费模型设计思路同步和安全性代码 POSIX信号量 信号量的概念 POSIX信号量是一种用于进程和线程之间同步的机制,主…

【netty系列-08】深入Netty组件底层原理和基本实现

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

数据结构(邓俊辉)学习笔记】串 16——Karp-Rabin算法:串即是数

文章目录 1. 化串为数2. 凡物皆数3. 亦是数 1. 化串为数 接下来的这节,我们再来讨论一种十分另类的串匹配算法,也就是所谓的 Karp-Rabin 算法。回顾此前所介绍的几种串匹配算法,我们所面临的难题是一样的。也就是说在这里,我们每次…

Windows 10/11降级漏洞的工具包现已发布 仅供安全测试

早前有研究人员在分析 Windows 10/11 更新机制时发现微软虽然已经考虑到潜在的安全问题增加了各种限制,但还是存在失误因此存在弱点,研究人员则通过该弱点成功降级了系统。通过该漏洞不仅可以成功降级系统,同时系统还会认为自己已经完成更新并…

Java面试题·区别题·JavaSE部分

系列文章目录 总章 Java区别题 文章目录 系列文章目录前言private/默认/protected/public权限修饰符的区别&和&&区别和联系,I和II区别和联系if和switch的不同之处和equals的区别和联系数组做形参和可变参数做形参联系和区别接口和抽象类的异同之处面向…

嵌入式day36

数据库 专业存储数据、大量数据 数组、链表、变量---->内存:程序运行结束、掉电数据丢失 文件---->硬盘:程序运行结束、掉电数据不丢失 数据库---->硬盘 数据库文件与普通文件区别: 1.普通文件对数据管理(增删改查…

Linux入门攻坚——30、sudo、vsftpd

su:Switch User,即切换用户 su [-l user] -c ‘COMMAND’ 如:su -l root -c ‘COMMAND’ 如果没有指定-l user,则默认是root sudo:可以让某个用户不需要拥有管理员的密码,而可以执行管理员的权限。 需…

基于RS232的VGA显示

前言 基于ROM的VGA显示缺点:需要将图片转化为mif文件,使用的RAM是FPGA内部RAM模拟出来的,占用资源大切换显示图片需要重新转化,对ROM进行写入,使用极不方便,因此这里采用RS232进行VGA显示。 正文 一、基于…

代码随想录Day 28|题目:122.买卖股票的最佳时机Ⅱ、55.跳跃游戏、45.跳跃游戏Ⅱ、1005.K次取反后最大化的数组和

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 题目题目一:122.买卖股票的最佳时机 II贪心算法:动态规划 题目二:55.跳跃游戏解题思路: 题目三: 45.跳跃游戏 II解题思路方法一方法二 题…