PythonでMarkdownからEPUBをつくろう

この連載について

 この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。

 本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。

 姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。

目次に戻る

4-1 プログラムの準備1

公開:2025-05-21

 まずはプログラム用のディレクトリを作ります。次のような配置でgen-epubディレクトリーを作ります。また、gen-epubの中に、main.pyというファイルを作成します。このmain.pyの中身は、この時点では空です。

▶ ファイル構成

 VSCodeを起動します。そして、gen-epubディレクトリーをドロップします。そしてウィンドウ左側のExplorer(ファイルのツリー)からmain.pyを開きます。

 Explorerが開いていない場合は、左端のアクティビティ バーから、一番上の「ファイルが2つ重なったアイコン」をクリックして開きます。

 main.pyに次のようにプログラムを書きます。意味は「sys(システム)を読み込んで、sys.argv(プログラムの実行時引数)を、print(出力)する」です。

▶ main.py
1import sys
2
3print(sys.argv)

 Ctrl+@でターミナルを開きます。

 カレント ディレクトリ(ターミナルの行の左に表示されているパス)がgen-epubディレクトリーのパスになっていることを確認してください。

 そして、次のようにコマンドを入力して実行します。

▶ プログラムの実行
python main.py --config "C:\~\doc_md\config.yaml" --epubcheck

 pythonコマンドは、Macでは適宜python3コマンドに置き換えてください。

 "C:\~\doc_md\config.yaml"のところには、config.yamlの実際のパスを書きます。パスの区切り文字は\ではなく、/でもよいです。相対パスでも構いません。そしてEnterキーを押します。

 すると次のような結果が表示されます。プログラムの実行時引数(pythonコマンドのあとの情報)が、リストというデータ型で取得されて出力されました。

▶ 実行結果
['main.py', '--config', 'C:\~\doc_md\config.yaml', '--epubcheck']

 main.pyに書いたプログラムと、入力したコマンドの解説をします。

 プログラムの1行目のimport sysは、Python標準ライブラリーのsys(システム)を読み込み、利用可能にするという処理です。

 3行目のprint()は、丸括弧内の情報を出力するという関数(命令)です。sys.argvには、プログラムを実行した際の引数(受け渡された情報)が入っています。

 実際に実行したコマンドはpython main.py --config "C:\~\doc_md\config.yaml" --epubcheckです。

 sys.argvの中には、リストという形式で複数のデータが入っています。最初は「main.py」、次は「--config」、その次は「C:\~\doc_md\config.yaml」、最後は「--epubcheck」です。

 コマンド実行時の引数は半角スペースで区切られます。ファイルパスなど、1つの引数内に半角スペースを含めたいときは"(ダブルクォーテーション)で囲います。

 最初のmain.pyは、Pythonが読み込んで実行するファイルの名前(あるいはパス)です。次以降が、Pythonのプログラム内で利用する値になります。

 これから作るプログラムでは、設定ファイルのパスを--config "C:\~\doc_md\config.yaml"という形で受け取ります。

 また、EPUBファイルの確認をおこなう場合には--epubcheckのフラグを付けます。確認をおこなわない場合は、このフラグを取り除き、python main.py --config "C:\~\doc_md\config.yaml"のように書きます。


目次に戻る

この連載について

 この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。

 本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。

 姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。

 技術系同人誌など まとめページ


トップページに戻る
Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2025 Cronus Crown (c)1997-2025 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について