概要
make_title_html.py は、ディレクトリ内のPDFファイル一覧からCSVファイルを作成し、さらにそのCSVファイルとHTMLテンプレートを用いて、タイトル順およびボリューム順に整理されたHTMLファイル(リンク集)を生成するユーティリティスクリプトです。
機能と動作原理
本スクリプトは、コマンドライン引数に応じて以下の2つの主要な動作を行います。
CSVファイルの生成 カレントディレクトリ内のすべての
*.pdfファイルを検索し、ファイル名からタイトルとインデックス(数値)を抽出します。抽出したデータをTitle-source.csvに出力します。HTMLファイルの生成 定義済みのCSVファイル(
Title.csv)を読み込み、各行のデータ(タイトル、ファイル名、インデックス、ページ数)を解析します。CSV内に記述された特定のコマンド行(#!BaseDirectoryや#!PageOffsetなど)を解釈し、各PDFファイルへのハイパーリンクタグを生成します。その後、テンプレートとなるHTMLファイル(デフォルトはtemplate.html)の内容を読み込み、Quoted-Printable形式でのエンコード・デコードを介して文字列置換を行い、リンクを埋め込んだのち、出力用HTMLファイルを生成します。
非標準ライブラリ
コードの import 文からは以下の標準ライブラリが読み込まれており、非標準ライブラリは使用されていません。
oscsvglobquopriresys
入出力仕様
入出力ファイルの指定はスクリプト内で固定されており、以下のファイルが使用されます。
入力ファイル
*.pdf: CSV作成処理の際、カレントディレクトリのPDFファイルが検索対象となります。Title.csv: HTML生成処理における入力データファイルです。エンコーディングはcp932として読み込まれます。template.html: HTML生成処理におけるテンプレートファイルです。存在しない場合は代替ファイル(Title-source.htmlなど)が探索されます。エンコーディングはcp932として読み込まれます。
出力ファイル
Title-source.csv: CSV作成処理の実行時に出力されます。エンコーディングはutf-8です。output.html: HTML生成処理の実行時に出力されます。テンプレートファイルが存在しない場合はTitle.htmlが出力ファイル名として利用される場合があります。エンコーディングはcp932です。ファイル内部には<H1>や<H2>といったHTMLタグとともにリンクが出力されます。
実行例
スクリプトはコマンドラインから実行し、引数で動作モードを指定します。
CSVファイルを生成する場合:
python make_title_html.py create
HTMLファイルを生成する場合:
python make_title_html.py html
※ imagehtml などのその他のコマンドライン引数に対する具体的な動作は実装されておらず、使用方法のメッセージが表示されて終了します。その他の詳細なオプション等についてはコードからは確認できません。