ホームページ >バックエンド開発 >Python チュートリアル >Python を使用して PDF を再帰的に結合する
複数の PDF ファイルを 1 つのドキュメントに結合することは、特にファイルが複数のディレクトリにまたがっている場合には、面倒な作業になる可能性があります。 Python を使用すると、このタスクがシームレスかつ自動化されます。このチュートリアルでは、PyPDF2 を使用してコマンド ライン インターフェイス (CLI) ツールを作成し、.venv や .git などの特定のディレクトリを除外しながら、ディレクトリ (そのサブディレクトリを含む) 内のすべての PDF ファイルをクリックして結合します。
始める前に、以下のものがあることを確認してください:
必要なライブラリ:
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 が .git をスキップして、merged.pdf にマージされます。
再帰的マージ:
ディレクトリの除外:
ソートされたマージ:
CLI シンプルさ:
大きなファイル:
PDF の互換性:
カスタム除外:
このチュートリアルでは、Python を使用してディレクトリ構造からの PDF の結合を自動化する方法を説明します。提供されている CLI ツールは柔軟性があり、より複雑なワークフローに適応できます。試してみて、どのように機能するかお知らせください!
コーディングを楽しんでください! ?
以上がPython を使用して PDF を再帰的に結合するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。