io python 读取pdf_实用又好用,6 款 Python 特殊文本格式处理库推荐

news/2024/7/7 20:31:36

561c3ccca6dea6d73fd4236bdc37734b.png

以下是一些 Python 编写的用来解析和操作特殊文本格式的库,希望对大家有所帮助。

01.Tablib

https://www.oschina.net/p/Tablib

Tablib 是一个用来处理与表格格式数据有关的 Python 库,允许导入、导出、管理表格格式数据,并具备包括切片、动态列、标签和过滤,以及格式化导入和导出等高级功能。

Tablib 支持导出/导入的格式包括:Excel 、JSON 、YAML 、HTML 、TSV 和 CSV ,暂不支持 XML 。

>> data = tablib.Dataset(headers=['First Name', 'Last Name', 'Age'])
>>> for i in [('Kenneth', 'Reitz', 22), ('Bessie', 'Monke', 21)]:
... data.append(i)
>>> print(data.export('json'))
[{"Last Name": "Reitz", "First Name": "Kenneth", "Age": 22}, {"Last Name": "Monke", "First Name": "Bessie", "Age": 21}]
>>> print(data.export('yaml'))
- {Age: 22, First Name: Kenneth, Last Name: Reitz}
- {Age: 21, First Name: Bessie, Last Name: Monke}
>>> data.export('xlsx')
<censored binary data>
>>> data.export('df')
First Name Last Name Age
0 Kenneth Reitz 22
1 Bessie Monke 21

02.Openpyxl

https://www.oschina.net/p/openpyxl

Openpyxl 是一个用于读写 Excel 2010 xlsx / xlsm / xltx / xltm 文件的 Python 库。

Openpyxl 为 Python 原生读取/写入 Office Open XML 格式而生,最初是基于 PHPExcel 而开发。

from openpyxl import Workbook
wb = Workbook()
# grab the active worksheet
ws = wb.active
# Data can be assigned directly to cells
ws['A1'] = 42
# Rows can also be appended
ws.append([1, 2, 3])
# Python types will automatically be converted
import datetime
ws['A2'] = datetime.datetime.now()
# Save the file
wb.save("sample.xlsx")

03.unoconv

https://www.oschina.net/p/unoconv

unoconv,全称为 Universal Office Converter ,是一个命令行工具,可在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。

unoconv 支持批量转换文档,还可以结合 asciidoc和 docbook2odf / xhtml2odt 来创建 PDF 或 Word(.doc) 文件。

[dag@moria cv]$ make odt pdf html doc
rm -f *.{odt,pdf,html,doc}
asciidoc -b docbook -d article -o resume.xml resume.txt
docbook2odf -f --params generate.meta=0 -o resume.tmp.odt resume.xml
Saved resume.tmp.odt
unoconv -f odt -t template.ott -o resume.odt resume.tmp.odt
unoconv -f pdf -t template.ott -o resume.pdf resume.odt
unoconv -f html -t template.ott -o resume.html resume.odt
unoconv -f doc -t template.ott -o resume.doc resume.odt

04.PyPDF2

https://www.oschina.net/p/pypdf

PyPDF2 是一个纯 Python PDF 库,能够分割、合并、裁剪和转换 PDF 文件页面。它还可以添加自定义数据、查看选项和密码到 PDF 文件。

PyPDF2 可以从 PDF 中检索文本和元数据,也可以将整个文件合并在一起。

from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
input1 = PdfFileReader(open("document1.pdf", "rb"))
# print how many pages input1 has:
print "document1.pdf has %d pages." % input1.getNumPages()
# add page 1 from input1 to output document, unchanged
output.addPage(input1.getPage(0))
# add page 2 from input1, but rotated clockwise 90 degrees
output.addPage(input1.getPage(1).rotateClockwise(90))
# add page 3 from input1, rotated the other way:
output.addPage(input1.getPage(2).rotateCounterClockwise(90))
# alt: output.addPage(input1.getPage(2).rotateClockwise(270))
# add page 4 from input1, but first add a watermark from another PDF:
page4 = input1.getPage(3)
watermark = PdfFileReader(open("watermark.pdf", "rb"))
page4.mergePage(watermark.getPage(0))
output.addPage(page4)
# add page 5 from input1, but crop it to half size:
page5 = input1.getPage(4)
page5.mediaBox.upperRight = (
page5.mediaBox.getUpperRight_x() / 2,
page5.mediaBox.getUpperRight_y() / 2
)
output.addPage(page5)
# add some Javascript to launch the print window on opening this PDF.
# the password dialog may prevent the print dialog from being shown,
# comment the the encription lines, if that's the case, to try this out
output.addJS("this.print({bUI:true,bSilent:false,bShrinkToFit:true});")
# encrypt your new PDF and add a password
password = "secret"
output.encrypt(password)
# finally, write "output" to document-output.pdf
outputStream = file("PyPDF2-output.pdf", "wb")
output.write(outputStream)

05.Mistune

http://mistune.readthedocs.io/

Mistune 是一个纯 Python 实现的 Markdown 解析器,功能齐全,包括表格、注释、代码块等。

Mistune 据称是所有纯 Python markdown 解析器中速度最快的(基准测试结果)。它在设计时考虑了模块化,以提供一个清晰易用的可扩展的 API 。

import mistune
mistune.markdown('I am using **mistune markdown parser**')
# output: <p>I am using <strong>mistune markdown parser</strong></p>

06.csvkit

https://www.oschina.net/p/csvkit

csvkit 号称是处理 csv 文件的瑞士军刀,集成了 csvlook , csvcut 和 csvsql 等实用工具,可以以表格形式显示 CSV 文件,轻松选取 CSV 指定列,以及在其上执行 SQL 操作。

csvkit 是一个命令行工具,灵感来自 pdftk 、gdal 和其它类似工具。

aa2e2829b9d906f9e7f25b514b158d3c.png

http://lihuaxi.xjx100.cn/news/272060.html

相关文章

远程usb端口映射_PLC远程控制

如何实现PLC联网、PLC远程下载、PLC远程监控等功能&#xff0c;下面介绍PLC远程共享的方法&#xff01;随着物联网技术的发展和信息技术的普及&#xff0c;越来越多的PLC、HMI等自动控制产品的生产厂家或集成商迫切需要对现场设备进行远程监控、调试和维护。从经济性上讲&#…

进程间通信的几种方式

进程间通信的方式主要有&#xff1a;管道&#xff0c;共享内存&#xff0c;信号量&#xff0c;消息队列。详细参考https://blog.csdn.net/skyroben/article/details/715133851.进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到&#…

科研超级神器,摘要页一键链接关联论文

视学算法报道转载自&#xff1a;机器之心编辑&#xff1a;杜伟、小舟与免费可视化工具 Connected Papers 合作&#xff0c;arXiv 论文以后可以轻松查找关联论文了&#xff01;在学术领域&#xff0c;arXiv 是不可或缺的论文阅读工具&#xff0c;同时它的功能也在不断地丰富和完…

人生苦短,不光要用Python,还要在VSCode里用

作者 | imbennyguo出品 | CSDN博客在程序员圈子里&#xff0c;Visual Studio Code&#xff08;以下简称VSCode&#xff09;可以说是目前最火的代码编辑器之一了。它是微软出品的一款可扩展的轻量级开源编辑器&#xff0c;并且支持全平台系统。这些特性使得VSCode颇受欢迎&#…

python爬虫算法深度优先_爬虫课程(四)|深度优先和广度优先算法

深度优先和广度优先算法在爬取一个整站上经常用到&#xff0c;本课程主要讲解这两个算法的原理以及使用过程。 一、网站的树结构 1.1、一个网站的url结构图 以知乎为例&#xff0c;知乎目前有发现、话题、Live、书店、圆桌、专栏主要的6个tab页。每个网站的url都是有一定的层次…

使用OpenCV实现车道线检测

点击上方“小白学视觉”&#xff0c;选择“星标”公众号重磅干货&#xff0c;第一时间送达图0 印度泰米尔纳德邦安纳马莱森林公路上的车道检测本文源码&#xff1a;https://github.com/KushalBKusram/AdvancedLaneDetection计算机视觉在自动化系统观测环境、预测该系统控制器输…

关于iOS招聘面试的一些问题

本人12年毕业&#xff0c;一直使用.NET&#xff0c;但去年9月份转iOS开发&#xff0c;4月份入职现在的公司接手产品的iOS端开发。近期被外借隔壁公司&#xff08;两公司就我一iOS...&#xff09;&#xff0c;既两边开发也帮隔壁公司面试新同事。幸亏人事安排的人基本是1至2年iO…

禅道设置bug模板_JPress v3.0 beta.2 发布,修复 bug 和完善产品细节

JPress 是一个使用 Java 开发的类似 WordPress 的系统&#xff0c;但更加侧重于企业营销和微信运营、支持模块化和插件化二次开发&#xff0c;国外对标 WordPress、国内对标 微擎 。这个版本主要是修复Bug&#xff0c;并对产品的细节进行完善&#xff0c;比如后台可以配置发送邮…