將多個 PDF 檔案合併到一個文件中可能是一項繁瑣的任務,尤其是當檔案分佈在多個目錄中時。使用 Python,這項任務變得無縫且自動化。在本教學中,我們將使用 PyPDF2 建立一個命令列介面 (CLI) 工具,然後按一下合併目錄(包括其子目錄)中的所有 PDF 文件,同時排除 .venv 和 .git 等特定目錄。
開始之前,請確保您具備以下條件:
所需的庫:
pip install PyPDF2
安裝點擊以建立 CLI:
pip install click
這是我們的 CLI 工具的完整程式碼:
import click from pathlib import Path from PyPDF2 import PdfMerger import os EXCLUDED_DIRS = {".venv", ".git"} @click.command() @click.argument("directory", type=click.Path(exists=True, file_okay=False, path_type=Path)) @click.argument("output_file", type=click.Path(dir_okay=False, writable=True, path_type=Path)) def merge_pdfs(directory: Path, output_file: Path): """ Merge all PDF files from DIRECTORY and its subdirectories into OUTPUT_FILE, excluding specified directories like .venv and .git. """ # Initialize the PdfMerger merger = PdfMerger() # Walk through the directory tree, including the base directory for root, dirs, files in os.walk(directory): # Exclude specific directories dirs[:] = [d for d in dirs if d not in EXCLUDED_DIRS] # Convert the root to a Path object current_dir = Path(root) click.echo(f"Processing directory: {current_dir}") # Collect PDF files in the current directory pdf_files = sorted(current_dir.glob("*.pdf")) if not pdf_files: click.echo(f"No PDF files found in {current_dir}") continue # Add PDF files from the current directory for pdf in pdf_files: click.echo(f"Adding {pdf}...") merger.append(str(pdf)) # Write the merged output file output_file.parent.mkdir(parents=True, exist_ok=True) merger.write(str(output_file)) merger.close() click.echo(f"All PDFs merged into {output_file}") if __name__ == "__main__": merge_pdfs()
目錄遍歷:
PDF 文件集合:
合併 PDF:
CLI 整合:
將程式碼儲存到檔案中,例如 merge_pdfs.py。從終端運行它,如下所示:
python merge_pdfs.py /path/to/directory /path/to/output.pdf
假設您有以下目錄結構:
/documents ├── file1.pdf ├── subdir1 │ ├── file2.pdf ├── subdir2 │ ├── file3.pdf ├── .git │ ├── ignored_file.pdf
如下運行該工具:
python merge_pdfs.py /documents /merged.pdf
這會將 file1.pdf、file2.pdf 和 file3.pdf 合併為 merged.pdf,跳過 .git。
遞歸合併:
目錄排除:
排序合併:
CLI 簡單性:
大檔案:
PDF 相容性:
自訂排除:
本教學示範如何使用 Python 自動合併目錄結構中的 PDF。提供的 CLI 工具非常靈活,可以適應更複雜的工作流程。嘗試一下,讓我們知道它如何為您服務!
編碼愉快! ?
以上是使用 Python 遞歸合併 PDF的詳細內容。更多資訊請關注PHP中文網其他相關文章!