【python實用小腳本-190】Python一鍵刪除PDF任意頁:輸入頁碼秒出干凈文件——再也不用在線裁剪排隊

Python一鍵刪除PDF任意頁:輸入頁碼秒出干凈文件——再也不用在線裁剪排隊

PDF刪頁, 零依賴腳本, 命令行秒用, 小白神器, 瑞士軍刀

故事開場:一把瑞士軍刀救了你

周一早高峰,老板發來 200 頁 PDF:
“把第 18、25、37 頁刪掉,10 分鐘后開會!”
你打開瀏覽器找在線工具——排隊 20 人,上傳 80 MB,還提示“會員專享”。
這時,你從 U 盤掏出“小白瑞士軍刀”——main.py
雙擊運行,按提示輸入:

What is the file that you would like to modify?
>>> report.pdf
How many pages do you need to delete?
>>> 3
Enter the page numbers…
>>> 18 25 37

30 秒后,output.pdf 躺在桌面,只剩 197 頁。
老板驚呼:“效率真高!”
痛點解決:再也不用在線排隊、上傳下載,本地 30 秒搞定。


完整代碼(≤1000字符,直接展示)

from PyPDF2 import PdfFileWriter, PdfFileReaderprint("請輸入要處理的 PDF 路徑:")
file = input()
pdf_in = PdfFileReader(file)print("要刪除幾頁?")
n = int(input())
pages_to_delete = []
print("請輸入頁碼(每行一個):")
for _ in range(n):pages_to_delete.append(int(input()) - 1)  # 頁碼從 0 開始pdf_out = PdfFileWriter()
for i in range(pdf_in.getNumPages()):if i not in pages_to_delete:pdf_out.addPage(pdf_in.getPage(i))with open('output.pdf', 'wb') as f:pdf_out.write(f)
print("完成!已生成 output.pdf")

代碼解析

功能塊 1:讀取 PDF

PdfFileReader 把整本 PDF 加載到內存,后續操作零延遲。

pdf_in = PdfFileReader(file)

功能塊 2:交互收集頁碼

input() 逐行收集用戶想刪的頁碼,減 1 轉成 0 基索引,小白不會輸錯。

pages_to_delete.append(int(input()) - 1)

功能塊 3:循環保留頁面

遍歷所有頁碼,不在刪除列表就加入新 PDF,順序不變。

for i in range(pdf_in.getNumPages()):if i not in pages_to_delete:pdf_out.addPage(pdf_in.getPage(i))

如果還想更厲害

擴展點子 1:命令行參數

-f report.pdf -p 18 25 37 -o cleaned.pdf,一行搞定。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--file', required=True)
parser.add_argument('-p', '--pages', nargs='+', type=int)
parser.add_argument('-o', '--output', default='output.pdf')
args = parser.parse_args()

擴展點子 2:圖形界面

tkinter 拖文件選頁碼,按鈕一鍵刪除。

import tkinter.filedialog as fd
file = fd.askopenfilename(filetypes=[("PDF", "*.pdf")])
# 復用上面頁碼列表邏輯

總結

main.py 這把 20 行瑞士軍刀,把“上傳→排隊→下載”三步壓縮成“輸入頁碼+回車”。
你無需安裝任何大型軟件,就能把 PDF 任意頁秒刪,順序不亂。
再加兩行參數或 GUI,它就從腳本升級成批量神器。
下次再遇“刪兩頁”需求,直接跑腳本,30 秒收工!

源碼獲取

完整代碼已開源,包含詳細的注釋文檔:
🔗 [GitCode倉庫] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [備用下載] https://pan.quark.cn/s/654cf649e5a6 提取碼:f5VG

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919349.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919349.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919349.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RH134 運行容器知識點

1. 相比較虛擬機,容器有哪些技術優勢?答:輕量級:容器共享宿主操作系統的內核,比虛擬機更輕量級,啟動速度更快,資源占用更少。高效性:容器可以快速部署和擴展,適合于微服務…

亞矩陣云手機智能定位:助力Snapchat矩陣賬號的本地化內容運營穿透技術

——構建跨地理圍欄的智能社交營銷網絡**??一、技術架構&#xff1a;動態定位引擎與多維度穿透體系??動態定位引擎??多源信號融合定位?&#xff1a;集成GPS/基站/WiFi三角定位技術&#xff0c;通過亞矩陣云手機底層驅動注入真實坐標數據&#xff08;誤差<5米&#xf…

數據處理和統計分析 —— Pandas 基礎(附數據集)

目錄 一、概述 &#xff08;一&#xff09;series 1、組成 2、創建方式 3、Series常用屬性 &#xff08;二&#xff09;DataFrame 1、組成&#xff1a; 2、構建方式 &#xff08;三&#xff09;數據導入和導出 二、加載數據集 加載部分數據 loc / iloc 三、分組和聚合計算 需求…

github 如何在 readme 顯示Star History

在GitHub的README文件中顯示Star History&#xff08;星標歷史&#xff09;圖表&#xff0c;可以通過以下幾種方式實現&#xff1a; 使用Star History服務 你可以使用Star History服務來生成并嵌入星標歷史圖表 。具體步驟如下&#xff1a; 訪問 Star History 網站: https:/…

安全防范方案

一、基于地理位置的訪問控制&#xff08;核心方案&#xff09; 原理&#xff1a;通過內置GeoIP數據庫或第三方IP庫識別訪問源國家/地區&#xff0c;動態攔截非目標區域IP。 配置步驟&#xff1a; 啟用GeoIP模塊 登錄管理控制臺 → 安全策略 → 地理位置策略 → 加載MaxMind Ge…

Python爬蟲實戰:研究optimesh庫,構建Github網格數據采集系統

1. 引言 1.1 研究背景與意義 在計算機輔助設計(CAD)、有限元分析(FEA)、計算流體力學(CFD)等領域,網格作為離散化連續空間的基礎載體,其質量直接影響數值模擬的精度與效率。高質量的網格應具備單元形狀規則、分布均勻、邊界貼合度高等特征,而低質量網格可能導致計算…

利用Qwen大模型進行c++11并發庫的學習,與時俱進!!!!

文章目錄 1、學習新的東西可以借助ai和官方文檔 1.1 會問問題 異步編程教程 1. std::future 2. std::shared_future 3、std::promise 4、4. std::packaged_task 5. std::async 6. std::future_status 和等待函數 綜合代碼 總結 1、學習新的東西可以借助ai和官方文檔 因為別人寫…

曲面/線 擬合gnuplot

1. 下載gnuplot windows 版&#xff0c;安裝&#xff0c;&#xff08;別的綠色的可能下載即用&#xff0c;推薦下面鏈接這款&#xff09; gnuplot - Browse Files at SourceForge.net 2. 準備數據&#xff0c;存成data.dat或者其它文件名稱&#xff0c;放桌面 數據內容如下…

CentOS Linux 7 (Core)上部署Oracle 11g、19C RAC詳細圖文教程

一、部署參考鏈接&#xff1a; 墨天輪數據庫社區 - 樂知樂享&#xff0c;同心共濟 實戰篇&#xff1a;一步步教你 Linux 7 安裝 Oracle 11GR2 RAC 實戰篇&#xff1a;Linux7 安裝 Oracle 19C RAC 詳細圖文教程 Linux7 安裝 Oracle 19C RAC 詳細圖文教程

WebSocket DevTools 開發調試工具完全指南 – 實時監控、消息攔截、性能分析一站式解決方案

概述 WebSocket DevTools 是一款專為 WebSocket 連接調試而設計的瀏覽器開發者工具擴展。它提供了實時監控、消息攔截、連接管理等功能&#xff0c;幫助開發者快速定位和解決 WebSocket 相關問題。 主要特性 &#x1f50d; 實時監控&#xff1a;實時顯示 WebSocket 連接狀態…

常見的光源頻閃控制方式

一、光源頻閃的優勢消除運動模糊&#xff0c;提升成像質量 光源以極短脈沖&#xff08;微秒級&#xff09;與相機曝光嚴格同步&#xff0c;實現“瞬時凍結”高速運動物體。增強特征對比度&#xff0c;提高缺陷檢出率 頻閃模式下&#xff0c;LED可短時超負荷工作&#xff0c;峰值…

讀From GPT-2 to gpt-oss: Analyzing the Architectural Advances(續)

序 本篇由來&#xff0c;在COC上我當面感謝了組委會和姜寧老師&#xff0c;隨即被姜寧老師催稿&#xff0c;本來當天晚上寫了一個流水賬&#xff0c;感覺甚為不妥。于是決定慢慢寫&#xff0c;緩緩道來。要同時兼顧Show me the code&#xff0c;Show me the vide。希望能形成一…

6-7 TIM編碼器接口 [江科協STM32]

一、引入&#xff08;1&#xff09;編碼器接口的好處&#xff1a;節約軟件資源&#xff1a;外部中斷計次&#xff0c;程序頻繁進入中斷&#xff0c;則軟件資源會被簡單頻繁的工作給占用&#xff0c;效率不高使用定時器的編碼器接口&#xff0c;再配合編碼器&#xff0c;就可以測…

01數據結構-交換排序

01數據結構-交換排序1.冒泡排序1.1基礎冒泡排序1.1.1基礎冒泡排序代碼實現1.2冒泡排序的一次優化1.2.1冒泡排序的第一次優化代碼實現1.3冒泡排序的二次優化1.3.1 冒泡排序的二次優化代碼實現2.快速排序2.1雙邊循環法2.1.1雙邊循環法的代碼實現2.2單邊循環法2.2.1單邊循環法代碼…

MySQL架構和儲存引擎

MySQL服務器整體架構如下&#xff1a;連接層&#xff1a;連接層的作用是處理客戶端的連接&#xff0c;如何管理連接的。網絡端口和連接管理線程&#xff1a;網絡端口&#xff1a;一臺服務器可以連接網絡上多個端口的客戶連接&#xff0c;只需要開放多個端口&#xff0c;只需要在…

詳解flink java基礎(一)

文章目錄1.流式處理flink介紹2.Flink SQL介紹3. Flink Runtime4.使用flink集成kafka5.使用Flink SQL進行有狀態流處理6.Event time & Watermarks7. flink Checkpoints & recovery1.流式處理flink介紹 實時服務依賴流式處理: flink優點: 高性能豐富的特性&#xff1a…

Day119 持續集成docker+jenkins

Day119 dockerjenkins 1.Dockerfile Dockerfile 可以用于項目部署。通過編寫 Dockerfile&#xff0c;可以將整個項目及其所需的依賴項打包到一個 Docker 鏡像中&#xff0c;然后在任何支持 Docker 的環境中部署和運行該鏡像 Dockerfile 是用于構建 Docker 鏡像的文本文件。它包…

Vue3+Vite MPA多頁面應用開發完整指南 – 從零搭建到部署優化

什么是 MPA 多頁面應用 MPA&#xff08;Multi-Page Application&#xff09;是由多個獨立的 HTML 頁面組成的應用&#xff0c;每個頁面都有獨立的入口文件。與 SPA 不同&#xff0c;MPA 的每個頁面都是獨立的&#xff0c;頁面間通過鏈接跳轉&#xff0c;適合大型項目或需要 SE…

【企業級架構】企業戰略到技術落地的全流程【第一篇】

目錄 一、人生藍圖與企業羅盤&#xff1a;戰略視角下的成長架構 1. 大學畢業迷茫期 → 企業未制定戰略前&#xff1a;無方向、無目標? 2. 制定職業規劃 → 企業戰略制定&#xff1a;明確 “去哪” 和 “分幾步走”? 3. 盤點自身能力差距 → 業務架構梳理&#xff1a;搞清…

(二) Python + 地球信息科學與技術 = 經典案例分析

目錄 四、農業精準施肥與產量預測&#xff08;植被指數 機器學習&#xff09; 五、公共場所踩踏事故預警系統&#xff08;時空大數據 Web 開發&#xff09; 六、森林火災智能識別與救援路徑規劃&#xff08;遙感 路徑優化&#xff09; 七、海岸線侵蝕動態監測與防護&…