この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。
≫ 目次に戻る まずはプログラム用のディレクトリを作ります。次のような配置でgen-epubディレクトリーを作ります。また、gen-epubの中に、main.pyというファイルを作成します。このmain.pyの中身は、この時点では空です。
doc/01_md/02_epub/tool/gen-epub/main.py VSCodeを起動します。そして、gen-epubディレクトリーをドロップします。そしてウィンドウ左側のExplorer(ファイルのツリー)からmain.pyを開きます。
Explorerが開いていない場合は、左端のアクティビティ バーから、一番上の「ファイルが2つ重なったアイコン」をクリックして開きます。
main.pyに次のようにプログラムを書きます。意味は「sys(システム)を読み込んで、sys.argv(プログラムの実行時引数)を、print(出力)する」です。
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 全コード』もあります。