Python一鍵搞定批量合成PDF

2022-06-08 04:09:07 字數 1963 閱讀 9877

首先匯入需要的庫和路徑設定

import os

from pypdf2 import pdffilereader, pdffilewriter

if __name__ == '__main__':

# 設定存放多個pdf檔案的資料夾

dir_path = r'c:\scientific research\knowladge\ophthalmology\chinese ophthalmology'

# 目標檔案的名字

file_name = "中華眼科學(第3版)合併版.pdf"

接著獲取所有pdf檔案的絕對路徑,這裡需要利用os庫中的os.walk遍歷檔案和os.path.join拼接路徑

for dirpath, dirs, files in os.walk(dir_path):

print(dirpath)

print(files)

# 結果返回當前路徑、當前路徑下資料夾,並以列表返回所有檔案

建議直接將需要合併的pdf放在乙個資料夾,這樣就無需再對檔案字尾進行判斷,包裝成函式後如下:

def getfilename(dir_path):

file_list = [os.path.join(dirpath, filesname) \

for dirpath, dirs, files in os.walk(dir_path) \

for filesname in files]

return file_list

現在建立合併pdf的函式

def mergepdf(dir_path, file_name):

# 例項化寫入物件

output = pdffilewriter()

outputpages = 0

# 呼叫上乙個函式獲取全部檔案的絕對路徑

file_list = getfilename(dir_path)

for pdf_file in file_list:

print("檔案:%s" % pdf_file.split('\\')[-1], end=' ')

# 讀取pdf檔案

input = pdffilereader(open(pdf_file, "rb"))

# 獲得源pdf檔案中頁面總數

pagecount = input.getnumpages()

outputpages += pagecount

print("頁數:%d" % pagecount)

# 分別將page新增到輸出output中

for ipage in range(pagecount):

output.addpage(input.getpage(ipage))

print("\n合併後的總頁數:%d" % outputpages)

# 寫入到目標pdf檔案

print("pdf檔案正在合併,請稍等......")

with open(os.path.join(dir_path, file_name), "wb") as outputfile:

# 注意這裡的寫法和正常的上下文檔案寫入是相反的

output.write(outputfile)

print("pdf檔案合併完成")

可以看到雖然待合併的pdf檔案比較大,但是依舊快速的合併成功!

Python一鍵多值

import csv file path f jddata classify300.csv csvfile file file path,rb reader csv.reader csvfile 初始化字典 adict dict 遍歷csv檔案裡的每一行資料,其中imagename為資料的第一列,c...

泊車嚮導 一鍵搞定停車 找車

應用名稱 泊車嚮導 支援平台 ios 0.99 利用全球衛星定位技術,泊車嚮導可以快速定位使用者的停車地點。使用者停好車後,只要開啟泊車嚮導,按下 停車 按鈕,系統就會自動記錄下停車位置和時間。自帶的計時器功能會精確記錄本次停車的時間,以免被惡意收費。辦完事情,走進偌大的停車場,不需要東張西望,四處...

智慧型電飯煲自動洗公尺手機操控一鍵搞定

隨著物聯網和軟體技術的快速發展,輕鬆便捷的煮飯方式越來越受人們青睞,智慧型 環保 節能型高階電飯鍋將會成為未來備受矚目的商品,特別是可遠端控制的全自動智慧型電飯鍋將會成為未來發展的方向。目前國內外對智慧型家居的技術研究較多,多數是用無線資料傳輸技術實現,但系統設計成本高。而對電飯鍋的全自動化技術研究...