安裝PyPDF2模組
# 這個模組嚴格區分大小寫,y是小寫,其餘大寫
pip3 install PyPDF2
#安裝完成之後呢,在本機硬碟上建立一個專門存放本專案的資料夾,我這裡在的存放路徑是 F:\Python\PyPDF2,在F碟有個Python資料夾,在其中又建立了一個以這個模組命名的資料夾,來單獨存放和與別的項目區分。
建立文件,準備PDF文檔
#找一個練手的比較大的PDF文檔,我在Django官網下載了他的文檔,這個文檔足夠大,1900多頁,對於練手絕對夠了,有需要的去官網下載,或者在我的公眾號直接回复'pdf' 獲取下載鏈接,然後再創建一個PDFCF.py 的項目文件。
開始寫
程式開始兩行,寫下上下邊這兩句,第一句的意思是指定這個檔案的執行程序,第二句是對這個文件的說明,這個的作用現在還看不出來,但如果你知道怎麼批量化快速執行程序,你就知道了它的作用,這裡不做贅述。
#! python# PDFCF.py - pdf文件拆分程序
文檔的拆分思路
#不固定拆分成多少份,但固定每一份由多少頁組成,然後來動態的計算拆分的份數,拆分思路有了,那麼下來就是列出計算公式。
拆分的份数= 文档总页数 / 拆份每个pdf组成的页数
舉個例子:
假如我們要拆分一個總頁數為35頁的pdf文檔,按照每10頁組成一個新文檔,那麼能拆分成多少份的計算公式如下:
3.5 = 35 / 10
這時候大家注意了,除不盡有餘數0.5,說明什麼?用這個例子來說就是拆分成3份還餘下5頁,那麼遇到這種情況不管餘數是幾都得向前進1,才能完成整個拆分,這個文檔拆分的結果就是,前3個文檔每個由10頁組成,第四個文件則由最後5頁組成,能整除則結果直接就是拆分的份數。
python拆分計算公式:
if 35 % 10: # 判断是否有余数 35 // 10 + 1 # 取余数整数部分加1else: 0 # 能整除则直接返回0 # 将这个循环写到一行4 = 35 // 10 + 1 if 35 % 10 else 0
具體怎麼拆?
還是以這個35頁的文檔拆分為例:
#循環遍歷每一頁資料for num in range(35),得到每一頁的數據,之後再指定拆分頁數範圍進行拆分:
第一個文檔從0- -10,不含10
第二份文件從10--20 ,不含20
第三個文件從20 - 30,不包含30
第四個文檔從30--35,不包含35
我們發現規律,每次遍歷第一個數字的規律是一個文件的頁數,乘以自己屬於第幾個就可以得到。第二個數字我們發現沒規律了,其實仔細觀察也有規律,假如我們對拆分個數排序,這個例子就是1--4,第二個數字就是當前屬於第幾個拆分數乘以每個文檔組成的頁數(頁數是固定的10)。
可是我們第一次遍歷的時候從0開始,就讓num變得不通用,那麼我們改造一下從1開始遍歷,range(1,35),從一開始遍歷,基於range不包含本身最後一個的特性,這樣遍歷出來就少了一頁文檔,那麼我們給他加1,變成
#for num in range(1,35 1 )
第一個文檔從10*(1-1)--10*1,不含10
第二份文件從10*(2-1)--10*2 ,不含20
第三個文件從 10*(3-1) -10*3, 不包含30
第四個文件從10(4-1)--35
具體遍歷程式碼如下:
for num in range(1,35+1): pass for i in range(10 * (num-1), 10 * num if num != 4 else 35): pass
注意:當遍歷到num = 4(最後一個文檔排序數時),直接回傳總頁數35就可以了,到這裡遍歷就結束了。這裡為什麼是總頁數35 而不是35 1呢?是因為這次遍歷我們是從0開始遍歷的,頁碼從0開始,所以不需要加1了。
完整分割程式:
import PyPDF2
注意:上邊這種分割思路我個人感覺比較繞,如果你對Python列表的切邊以及步長概念理解透徹的話,我覺得不需要這麼複雜,只需要把總頁碼生成一個大列表,再把這個列表利用切片的方法拆分成多個小列表,之後每個拆分的pdf頁碼範圍就是每個小列表第一個數--最後一個數1,我把我用列表方法實現的程式碼也貼出來供大家參考。
拆分清單方法實作拆分PDF:
#! python
怎麼用?
在專案資料夾內部按住Shift鍵,點擊滑鼠右鍵,選擇在此處開啟命令窗口,輸入PDFCF.py,回車即可,根據自己的需求去更改n 的值。
以上是Python如何用PyPDF2模組拆分PDF文檔的詳細內容。更多資訊請關注PHP中文網其他相關文章!

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

如何解決jieba分詞在景區評論分析中的問題?當我們在進行景區評論分析時,往往會使用jieba分詞工具來處理文�...

如何使用正則表達式匹配到第一個閉合標籤就停止?在處理HTML或其他標記語言時,常常需要使用正則表達式來�...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

WebStorm Mac版
好用的JavaScript開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)