Python3,5行代码,Chatxxx能对PDF文件进行旋转、提取、合并等一系列操作,看了这篇,80岁老奶奶走路都不扶墙了。

简介: Python3,5行代码,Chatxxx能对PDF文件进行旋转、提取、合并等一系列操作,看了这篇,80岁老奶奶走路都不扶墙了。

1、引言

小屌丝:鱼哥,最近干啥了?

小鱼:最近? 你指的多近?

小屌丝:就是 这几天?

小鱼:这几天 我在搬砖啊。

小屌丝:那前几天呢?

小鱼:前几天,我五一假期,我也在搬砖。

小屌丝:鱼哥,你…。

小鱼:我确实这样啊。

小屌丝:那换一个话题,ChatGPT搞得怎么样?

小鱼:ChatGPT各个大厂不都在搞,你想了解的,ChatGPT都能回答。

小屌丝:鱼哥,你…!

小鱼:这就是ChatGPT的强大之处啊,事实也是如此呢。

小屌丝:好吧, 那我想提取PDF文档的内容。

小鱼:这篇:《Python3,9行批量提取PDF文件的指定内容,这种操作,保证人见人爱….》

小屌丝:我是人民币玩家, 我要更高级的。

小鱼:这… 容我看一下

小屌丝:看啥?

小鱼:看你账户余额还剩多少,是不是该充值了。

小屌丝:鱼哥,你…!

小鱼:充满,给你想要的高级感…

小屌丝:嘿嘿 … 充满…

2、代码实战

2.1 原理

说到 ChatPDF,大部分同学的第一反应就是, 不好意思,我不知道。

但是,说到ChatGPT,那你可能说,这我必须知道啊, OPenAI公司的产品,并且现在这么爆火,我还能不知道呢。

既然知道ChatGPT,那ChatPDF就不难理解了。

其实,ChatPDF就是ChatGPT的一个衍生产品。

小屌丝:既然是ChatGPT的衍生产品,那,工作原理是啥样的呢?

小鱼:工作原理不难,也就2套把大象放冰箱的步骤吧。

  • 1、ChatPDF读取PDF文件内容,并将其转换成文本(可以是.txt)格式;
  • 2、ChatPDF对提取的文本内容进行清理和标准化,如:分段、分句等;
  • 3、使用OpenAI的Embeddings API将每个分段转换为向量,这个向量将对文本中的语义进行编码,以便于与问题的向量进行比较;
  • 4、使用OpenAI的Embeddings API将问题转换为一个向量,并与每个分段的向量进行比较,以找到最相似的分段。这个相似度计算可以使用余弦相似度等常见的方法进行;
  • 5、将找到的最相似的分段与问题作为prompt,调用OpenAI的Completion API,让ChatGPT学习分段内容后,再回答对应的问题;
  • 6、会将ChatGPT生成的答案返回给用户,完成一次查询。

小屌丝:没想到,实现流程确实挺easy的。

小鱼:大河弯弯向东流,牛牛向前冲 ~ ~

2.2 安装

上一章节我们知道了什么是ChatPDF,以及运行流程,

接下来,就得实际操作操作了 。

当然,涉及到第三方库, 老规矩,安装走起。

pip install chatpdf

然后就是等待着安装。

其它安装方式,直接看这两篇:

2.2 示例

安装完成,我们就看看chatPDF的能耐。

2.2.1 创建PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,创建PDF文件
'''
'--------->创建PDF文件<---------'
from chatpdf import ChatPDF
#文件名字
file_name = './data/TestDemo.pdf'
pdf = ChatPDF()
#添加页数
pdf.add_page()
#设置字体
pdf.set_font("Arial", size=12)
#设置内容
pdf.cell(200,10,txt='Hello, Python')
#输出内容
pdf.output(file_name)

2.2.2 旋转PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现旋转PDF文件内容
'''
'--------->旋转PDF文件内容<---------'
from chatpdf import rotate_pages
#pdf源文件
pdf_file = './data/input.pdf'
#输出的文件
output_file = './data/output.pdf'
#旋转的页码
pages = [1, 3]
#旋转角度设置
rotation_angle = 270
rotate_pages(pdf_file, output_file, pages, rotation_angle)

2.2.3 拆分PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现拆分PDF文件内容
'''
'--------->拆分PDF文件<---------'
from chatpdf import split
#需要拆分的pdf源文件
pdf_file = 'input_demo.pdf'
#拆分后的pdf保存的文件夹
output_folder = './data/output'
split(pdf_file,output_folder)

2.2.4 合并PDF文件

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现合并PDF文件内容
'''
'--------->合并PDF文件<---------'
#获取所有文件
file1 = './data/demo1.pdf'
file2 = './data/demo2.pdf'
file3 = './data/demo3.pdf'
#列表展示所有需要合并的pdf文件
pdf_file_list = [file1,file2,file3]
#合并后输出文件名称
output_file = 'output_demo.pdf'
merge(pdf_file_list,output_file)

2.2.5 提取PDF文件内容

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-05-06
# @Author : Carl_DJ
'''
实现功能:
    使用chatPDF的基本方法,实现提取PDF文件内容
'''
'--------->提取PDF文件<---------'
from chatpdf import extract_pages
#待提取的pdf源文件
pdf_file = 'input.pdf'
#输出提取的pdf文件内容
output_file = './data/output.pdf'
#提取的源文件的页码
pages = [1,3,5,7,10]
extract_pages(pdf_file, output_file, pages)

小屌丝:鱼哥,我记得你还写过一篇,专门提取PDF文档内容的博文。

小鱼:嗯,你的记性还挺好,确实写过,就是下面这篇。

当然,关于对PDF文档的操作,也可以看小鱼的其他博文:

3、总结

看到这里, ChatPDF库的介绍就完成了。

其实ChatPDF库的功能,不止我说的这几个功能哦,还有:

  • PDF文件加密;
  • PDF文件解密;

在当前ChatGPT爆火的当下,作为技术er,我们多多少少都需要了解一些AI的知识。

即使白~ 嫖~ ChatGPT的使用次数, 也是可以的。

当然, 作为小鱼,肯定不会做(bai piao )的事情,但是,学习的脚步,却从未停止。

我是小鱼

  • 家;
  • 阿里云 专家博主;
  • 51CTO 博客专家;
  • 51认证讲师;
  • 认证金牌面试官;
  • 职场培训规划师;

关注我,带你学习更多更有趣的Python知识。

  • CSDN 博客专
目录
相关文章
|
12天前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
13天前
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
140 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
|
8天前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
54 8
|
29天前
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
118 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
22天前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
52 20
|
28天前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
|
29天前
|
存储 JSON 对象存储
如何使用 Python 进行文件读写操作?
大家好,我是V哥。本文介绍Python中文件读写操作的方法,包括文件读取、写入、追加、二进制模式、JSON、CSV和Pandas模块的使用,以及对象序列化与反序列化。通过这些方法,你可以根据不同的文件类型和需求,灵活选择合适的方式进行操作。希望对正在学习Python的小伙伴们有所帮助。欢迎关注威哥爱编程,全栈路上我们并肩前行。
|
3月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
141 63
|
2月前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
346 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
1月前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。

热门文章

最新文章