官术网_书友最值得收藏!

3.4 處理.pdf文件

Python 之所以強大,在于它有大量第三方庫的支持(幾乎每個月都有新的庫產生),同一問題往往可用多個庫解決。Python 對.pdf 文件的處理也不例外。這里,選擇以 PDFMiner 庫[7]為例來介紹對.pdf 文件的處理。也許當你拿到本書時,你已經有更好的庫來處理.pdf文件了,那就用你喜歡的庫吧,只要能解決問題就好。

1.安裝PDFMiner庫

在Windows命令行窗口下,通過命令“pip list”查看是否安裝此庫。如果沒有,使用 pip 工具進行安裝。這里,先使用一個第三方庫 PDFMiner3K 把.pdf 文件讀成字符串,然后用StringIO將其轉換成文件對象。注意安裝庫的名字是“pdfminer3k”,如下:

再次強調,我們安裝的是 Anaconda 環境。如果要分析現有.pdf 文件的內容,可用PDFMiner。

2.處理.pdf文件

在具體使用 PDFMiner 庫處理.pdf 文件之前,需要先學習解析.pdf 文件用到的類(見表3-5)[8]

表3-5 PDFMiner庫中解析.pdf文件常用的類

【例3-21】 將指定目錄下的.pdf文件的內容讀取到一個.txt文件中。

運行以上程序后打開“D:\PythonTest\pdf_document\pdf_text_1.txt”文件,.txt文本文件中的部分內容顯示如下:

處理.pdf文件的基本思路和流程:

(1)打開文件(二進制方式),聲明文件對象。

(2)用文件對象創建一個文件解析器對象(PDFParser)。

(3)創建一個 pdf 文件對象,用于存儲文件結構(PDFDocument),PDFDocument與PDFParser是相互關聯的。

(4)連接pdf文件解析器和pdf文件對象(praser.set_document、doc.set_parser)。

(5)創建一個pdf資源管理器對象來存儲共享資源(PDFResourceManager)。

(6)創建一個pdf頁面聚合對象,作為PDFPageInterpreter的參數傳入(PDFPage-Aggregator)。

(7)創建一個pdf解析器對象來解析page頁面內容(PDFPageInterpreter)。

(8)處理文件中每一個page頁面的內容(get_pages()獲取page列表)。

主站蜘蛛池模板: 盐源县| 宁安市| 大埔区| 互助| 青海省| 云南省| 德惠市| 新宾| 北京市| 综艺| 商南县| 榆中县| 卫辉市| 出国| 岐山县| 德格县| 泸定县| 永年县| 彝良县| 当阳市| 开鲁县| 盐津县| 阿尔山市| 务川| 武胜县| 青州市| 宁蒗| 赣州市| 宽城| 岳西县| 晴隆县| 集贤县| 安宁市| 夏河县| 桓仁| 太谷县| 江西省| 青岛市| 信丰县| 东安县| 永州市|