PDF转TXT ChatGPT编程

1.目的

在Z-library找到一本书,只不过是PDF格式的,看的时候体验不好,还没有办法保存记录,就想着能不能转成txt格式放到手机自带的小说软件中看。
不想去网上找相关的软件,可以还需要付钱,所以尝试用ChatGPT来实现。

2.ChatGPT编程

提示词1:

我现在有一本书,格式是PDF的,需要把它转成TXT格式的,用python实现

生成代码 

import PyPDF2# 打开PDF文件
pdf_file = open('noteacher.pdf', 'rb')# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)# 创建一个空字符串来存储文本内容
text = ''# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]text += page.extract_text()# 关闭PDF文件
pdf_file.close()# 将提取的文本内容写入TXT文件
with open('output_text_file.txt', 'w', encoding='utf-8') as txt_file:txt_file.write(text)

在上面的代码中,您需要将your_pdf_file.pdf替换为您要转换的PDF文件的路径。执行代码后,将生成一个名为output_text_file.txt的TXT文件,其中包含从PDF中提取的文本内容。 

txt效果不太好,PDF格式转变时是按照一定数目符号来进行换行,所以观看效果很割裂

 提示词2:

对于生成的txt文件,需要改变换行方式,先取消txt文件的换行,之后每识别到一个。才进行换行

 生成代码

import PyPDF2# 打开PDF文件
pdf_file = open('your_pdf_file.pdf', 'rb')# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)# 创建一个空字符串来存储文本内容
text = ''# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]text += page.extract_text()# 关闭PDF文件
pdf_file.close()# 替换所有换行符为空白字符
text = text.replace('\n', ' ')# 在每个识别到的换行符处手动添加换行符
final_text = ''
for char in text:if char == '\n':final_text += '\n'else:final_text += char# 将提取的文本内容写入TXT文件
with open('output_text_file.txt', 'w', encoding='utf-8') as txt_file:txt_file.write(final_text)

此代码将先将所有的换行符替换为空白字符,然后在每个识别到的换行符处手动添加换行符,以满足您的需求。请替换your_pdf_file.pdf为您的PDF文件路径,并执行代码以生成TXT文件。

确实把换行符都换成了空白字符,但是并没有识别出“。”,也就没办法换行了 

 继续改进,提示词3:

识别到句号。这个符号才进行换行

生成代码

import PyPDF2# 打开PDF文件
pdf_file = open('your_pdf_file.pdf', 'rb')# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)# 创建一个空字符串来存储文本内容
text = ''# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]text += page.extract_text()# 关闭PDF文件
pdf_file.close()# 替换所有换行符为空白字符
text = text.replace('\n', ' ')# 在识别到句号时添加换行符
final_text = ''
for char in text:final_text += charif char == '.':final_text += '\n'# 将提取的文本内容写入TXT文件
with open('output_text_file.txt', 'w', encoding='utf-8') as txt_file:txt_file.write(final_text)

效果同样不好,检查了一下,代码中的句号是英文的句号“.”,但是PDF中是中文的句号“。” 

将英文句号改成中文句号 ,代码为:

import PyPDF2# 打开PDF文件
pdf_file = open('noteacher.pdf', 'rb')# 创建一个PDF文件阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file)# 创建一个空字符串来存储文本内容
text = ''# 遍历PDF页面并提取文本
for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]text += page.extract_text()# 关闭PDF文件
pdf_file.close()# 替换所有换行符为空白字符
text = text.replace('\n', ' ')# 在识别到句号时添加换行符
final_text = ''
for char in text:final_text += charif char == '。':final_text += '\n'# 将提取的文本内容写入TXT文件
with open('output_text_file4.txt', 'w', encoding='utf-8') as txt_file:txt_file.write(final_text)

这个看起来还行  

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

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

相关文章

springcloud-fegin 组件调用

一、Feign 概述 Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。 在Spring Cloud中,使用Feign非常简单——创建一个接口,并在接口上添加一些注解,代码就完成了。Feign支持多种…

R: 支持向量机(Support Vector Machine,简称SVM)

在数据科学和机器学习领域中,支持向量机(Support Vector Machine,简称SVM)是一种强大的监督学习算法,常用于分类和回归分析。它的优点之一是可以适用于复杂的数据集,并且在高维空间中表现良好。在本文中&am…

【示例】MySQL-MySQL中常见的锁

前言 本文主要讲述MySQL中常见的锁。 总结 | 各类别锁的名字 锁级别锁名字解释全局锁read lock全局锁只有可读锁表级锁 - 表锁read lock 表共享读锁write lock 表独占写锁表级锁 - 元数据锁(meta data lock,MDL)SHARED_READ_ONLYSHARED_NO…

OSPF实验

需求: 1、R1-R3为区域0,R3到R4为区域1;其中R3的环回也在区域0,P1-R3分别有一个环回接口 2、R1-R3 R3为DR设备,没有BDR 3、R4环回地址已固定,其他所有网段使用192.168.1.0/24进行合理分配 4、R4环回不能…

【golang】动态生成微信小程序二维码实战下:golang 生成 小程序二维码图片 并通过s3协议上传到对象存储桶 | 腾讯云 cos

项目背景 在自研的系统,需要实现类似草料二维码的功能 将我们自己的小程序,通过代码生成相想要的小程序二维码 代码已经上传到 Github 需要的朋友可以自取 https://github.com/ctra-wang/wechat-mini-qrcode 一、生成Qrcode并提交到对象存储 通过源生A…

Kubernetes(k8s):深入理解 Kubernetes 中的污点(Taints)与容忍度(Tolerations)

Kubernetes(k8s):深入理解 Kubernetes 中的污点(Taints)与容忍度(Tolerations) 1、污点(Taints)2、容忍度(Tolerations)3、示例演示-测试污点的具…

【C/C++基础知识】const 关键字

文章目录 Q&A and 前言const 修饰基本变量初始化const 对象仅在文件内有效 const 的引用应用 指针与 constconst 修饰类成员函数参考写在最后 Q&A and 前言 Q:简要说一说 C 中的 const 关键字,含义以及常见的使用位置 A:const 是 C…

自动化测试(selenium篇)

这次我们来介绍selenium 我们主要来讲解这几个要点 1.什么是自动化测试 2.什么是selenium 3.为什么来讲selenium 4.selenium的环境搭建 5.selenium的 API 1.什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条…

蓝宝石衬底材料具有广阔消费市场 行业景气度良好

蓝宝石衬底材料具有广阔消费市场 行业景气度良好 衬底是由半导体单晶材料制造而成的晶圆片,既可以直接进入晶圆制造环节生产半导体器件,也可以进行外延工艺加工生产外延片,是电子元件的主体结构和支撑载体。蓝宝石衬底材料具有良好的透光性、…

burpsuite最新版2024.3.1安装

burpsuite最新版安装 环境 windows jdk22 BurpLoaderKeygen.jar burpsuite profression 2024.3.1 链接 链接:https://pan.baidu.com/s/1N6nggZZezg8y1FHpgwJmeg 提取码:n6uqjdk以及破戒方式这里不做介绍 注意事项 使用BurpLoaderKeygen.jar 破解之后…

Windows 2003 R2与Windows 2022建立域信任报错:本地安全机构无法跟域控制器获得RPC连接。请检查名称是否可以解析,服务器是否可用。

在Windows Server 2003 R2与Windows Server 2022之间建立域信任时遇到“本地安全机构无法与域控制器获得RPC连接”的错误,可能是由于以下几种原因: DNS 解析问题: 确保源域和目标域的DNS配置正确,能够互相解析对方的域名和IP地址。…

多语言婚恋交友APP开发流程一览

近年来,随着全球化的发展和人们对跨文化交流的需求增加,多语言婚恋交友APP的需求逐渐增长。开发这类APP需要考虑到不同语言和文化下用户的需求,涉及到一系列独特的流程和挑战。本文将从专家角度为您解析多语言婚恋交友APP的开发流程&#xff…

LeetCode105题:从前序与中序遍历构造二叉树(python3)

105题:从前序与中序遍历构造二叉树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def buildT…

PCB工艺规范及PCB设计安规原则

一、目的 规范产品的PCB工艺设计,规定PCB工艺设计的相关参数,使得PCB的设计满足可生产性、可测试性、安规、EMC、EMI等的技术规范要求,在产品设计过程中构建产品的工艺、技术、质量、成本优势。 二、适用范围 本规范适用于所有电了产品的PCB工…

【Redis】redis面试相关积累

Redis到底是多线程还是单线程? Redis 在设计上是单线程的,这意味着 Redis 服务器在任何给定时刻只能执行一个命令。然而,这并不意味着 Redis 无法利用多核 CPU,因为 Redis 使用了一些技术来提高性能和并发性,例如非阻…

【虚幻引擎】DTProjectSettings 蓝图获取基本项目配置插件使用说明 获取项目命名,项目版本,公司名,公司识别名,主页,联系方式

本插件可以使用蓝图获取到项目的一些基本配置,如获取:公司名、公司识别名、版权声明、描述、主页、许可条款、隐私政策、项目ID、项目命名、项目版本、支持联系方式、项目显示标题、项目调试标题信息、应保留窗口宽高比、使用无边框窗口、以VR启动、允许…

【Vue3进阶】- 第2学堂小商城项目后端准备和接口文档

简介 在大多数前端项目开发中,都需要与后端进行接口交互,后端通常会以文档的形式提供接口信息,前端开发者通过阅读这些文档,了解后端接口的功能和使用方法,从而实现数据的获取和提交等功能。 第二学堂小商城教程后端…

03攻防世界-unserialize3

根据题目可以看出,这是个反序列化的题目 打开网址观察题目可以看到这里是php的代码,那么也就是php的反序列化 本题需要利用反序列化字符串来进行解题,根据源码提示我们需要构造code。 序列化的意思是:是将变量转换为可保存或传输…

嵌入式之数据结构篇(五)

五、数据结构与算法 程序 数据结构 算法 1.数组 数组是存放在连续空间上的相同类型数据集合 数组下标是从0开始的数组内存空间地址是连续的 二分查找:给定一个n个元素升序的整型数组nums和一个目标值target,写一个函数搜索nums中的target&#xf…

vue2 的版本 使用 Ant Design Vue 1.78版本的组件库 做自定义接口 调用后端的接口上传excel文件

话不多说 上代码 <a-upload style"margin-left: 8px" :before-upload"beforeUpload" :showUploadList"false" :multiple"false" :headers"tokenHeader" ><a-button> <a-icon type"upload" /> 导…