歡迎光臨
每天分享高質量文章

實用又好用,6 款 Python 特殊文本格式處理庫推薦

來自:開源中國

鏈接:https://my.oschina.net/editorial-story/blog/1622205

以下是一些 Python 編寫的用來解析和操作特殊文本格式的庫,希望對大家有所幫助。


01

Tablib

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


Tablib 是一個用來處理與表格格式資料有關的 Python 庫,允許匯入、匯出、管理表格格式資料,並具備包括切片、動態列、標簽和過濾,以及格式化匯入和匯出等高級功能。


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

>>> data = tablib.Dataset(essay-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’)


>>> 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:

I am using mistune markdown parser

06

csvkit

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


csvkit 號稱是處理 csv 檔案的瑞士軍刀,集成了 csvlook , csvcut 和 csvsql 等實用工具,可以以表格形式顯示 CSV 檔案,輕鬆選取 CSV 指定列,以及在其上執行 SQL 操作。

csvkit 是一個命令列工具,靈感來自 pdftk 、gdal 和其它類似工具。


●本文編號352,以後想閱讀這篇文章直接輸入352即可

●輸入m獲取文章目錄

赞(0)

分享創造快樂