天天看點

python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...

1.首先,實作功能源碼

#!/usr/bin/env python

# coding=utf-8

import tkinter.messagebox

from tkinter import *

from PyPDF2 import PdfFileReader, PdfFileWriter

import re

# 設定全局變量

filename=""

pdf_input=""

fp_read_file=""

page_count=0

# PDF檔案分割

def split_pdf( out_detail):

try:

with open(out_detail, 'r', True, 'utf-8')as fp:

# print(fp)

txt = fp.readlines()

# print(txt)

for detail in txt: # 打開分割标準檔案

# print(type(detail))

# print(detail)

# 如果取到的内容包括“the file to be split is :”

line_wold = "the file to be split is :"

if line_wold in detail:

# 切割擷取檔案名:

rule = r'the file to be split is :(.*?.pdf)'

filename = re.findall(rule, detail)[0].strip()

print(filename)

fp_read_file = open(filename, 'rb')

pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式話

page_count = pdf_input.getNumPages() # 擷取PDF頁數

print("該檔案一共"+str(page_count)+"頁") # 列印頁數

print(filename)

print("擷取檔案名完成,開始分割")

continue

pages, write_file = detail.split() # 空格分組

# write_file, write_ext = os.path.splitext(write_file) # 用于傳回檔案名和擴充名元組

pdf_file = f'{write_file}.pdf'

# liststr=list(map(int, pages.split('-')))

# print(type(liststr))

try:

start_page, end_page = list(map(int, pages.split('-'))) # 将字元串數組轉換成整形數組

print(start_page)

except :

tkinter.Tk().withdraw()

tkinter.messagebox.showwarning("配置檔案", "頁數為空或不是正整數,請檢查配置檔案")

return

if start_page < 1:

# 隐藏主視窗

tkinter.Tk().withdraw()

# 消息框提示消息

tkinter.messagebox.showwarning("配置檔案","起始頁面不能為0!請重新編輯頁面")

return

start_page -= 1

# 如果輸入頁數大于最大頁數,則最大頁數

if end_page > page_count:

end_page=page_count

# 隐藏主視窗

tkinter.Tk().withdraw();

tkinter.messagebox.showwarning("配置檔案", "分割頁數超過了PDF的頁數,已調整為結束頁為最後一頁"+str(page_count))

try:

print(f'開始分割{start_page}頁-{end_page}頁,儲存為{pdf_file}......')

pdf_output = PdfFileWriter() # 執行個體一個 PDF檔案編寫器

for i in range(start_page, end_page):

pdf_output.addPage(pdf_input.getPage(i))

with open(pdf_file, 'wb') as sub_fp:

pdf_output.write(sub_fp)

print(f'完成分割{start_page}頁-{end_page}頁,儲存為{pdf_file}!')

except IndexError:

print(f'分割頁數超過了PDF的頁數') # 這個部分其實可以不用try,前面已經處理過了

except Exception as e:

print(e)

finally:

fp_read_file.close()

split_pdf( 'configure.txt')

2.實作打包成脫離python環境的.EXE程式

我的代碼路徑,在這個路徑下,按住shift+滑鼠右鍵,進入指令視窗

python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...
python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...

輸入指令實作打包,pyinstaller包自行用pip install 去下載下傳就好

python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...
python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...

打包成功之後會在目錄下生成build和dist檔案夾,exe檔案在dist檔案夾下

python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...

3.如何使用

這個工具需要傳入參數,你要分割 的PDF檔案全稱,配置分割頁數,分割後的檔案名稱,在配置檔案中寫好

python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...

4.輕按兩下exe檔案,即可分割

python脫離環境運作_PDF分割--可脫離python環境執行,可傳參數,可彈窗的PC端小工具...

作為初學者自己搞出這個東西還是蠻開心,分享給各位,希望對你有幫助!!!