Menggabungkan berbilang fail PDF ke dalam satu dokumen boleh menjadi tugas yang membosankan, terutamanya jika fail itu tersebar di beberapa direktori. Dengan Python, tugas ini menjadi lancar dan automatik. Dalam tutorial ini, kami akan mencipta alat antara muka baris perintah (CLI) menggunakan PyPDF2 dan klik untuk menggabungkan semua fail PDF dalam direktori (termasuk subdirektorinya), sambil mengecualikan direktori tertentu seperti .venv dan .git.
Sebelum bermula, pastikan anda mempunyai perkara berikut:
Perpustakaan Diperlukan:
pip install PyPDF2
Klik pasang untuk mencipta CLI:
pip install click
Berikut ialah kod lengkap untuk alat CLI kami:
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()
Perjalanan Direktori:
Koleksi Fail PDF:
Menggabungkan PDF:
Integrasi CLI:
Simpan kod pada fail, cth., merge_pdfs.py. Jalankannya dari terminal seperti berikut:
python merge_pdfs.py /path/to/directory /path/to/output.pdf
Andaikan anda mempunyai struktur direktori berikut:
/documents ├── file1.pdf ├── subdir1 │ ├── file2.pdf ├── subdir2 │ ├── file3.pdf ├── .git │ ├── ignored_file.pdf
Jalankan alat seperti berikut:
python merge_pdfs.py /documents /merged.pdf
Ini akan menggabungkan file1.pdf, file2.pdf dan file3.pdf ke dalam merged.pdf, melangkau .git.
Penggabungan Rekursif:
Pengecualian Direktori:
Penggabungan Diisih:
Kesederhanaan CLI:
Fail Besar:
Keserasian PDF:
Pengecualian Tersuai:
Tutorial ini menunjukkan cara mengautomasikan penggabungan PDF daripada struktur direktori menggunakan Python. Alat CLI yang disediakan adalah fleksibel dan boleh disesuaikan untuk aliran kerja yang lebih kompleks. Cubalah dan beritahu kami cara ia berfungsi untuk anda!
Selamat pengekodan! ?
Atas ialah kandungan terperinci Gabungkan PDF Secara Rekursif Menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!