【悩み】
・PythonでWord文書をMarkdown(マークダウン)ファイルへ変換したい。
・どのPythonライブラリを使うべきかを知りたい。
・データ分析の準備や大量のWord変換にかかる時間を短縮したい。
こういった「悩み」に答えます。
【本記事の内容】
① WordをMarkdownファイルへ変換できるPythonライブラリ
➁ 事前準備:各種インストール
➂ Word文書をMarkdownへ変換
④ ご紹介したMarkdown変換プログラムの応用例2選
本記事に掲載した方法を実践したことで、Pythonを使ってWord文書(docxやdocファイル)をMarkdownファイル(拡張子.md)に変換できました(下の動画参照)。
記事の前半では「WordをMarkdownファイル変換に使えるPythonライブラリの一覧」と「ライブラリのインストール方法などの環境準備」について解説します。
記事の後半では「WordをMarkdownファイルに変換するPythonプログラム」と「作成したPythonプログラムの応用例」を説明します。
この記事を読み終えることで、「手元にある大量のWordファイルを開かずに短時間でMarkdownファイルに変換できる」状態になります。
ちなみに、「新規作成」「編集」「抽出」といった操作もPythonで実施できます。以下の記事にまとめているので興味がある方は是非ご覧ください。
WordをMarkdownファイルへ変換できるPythonライブラリ
PythonでWordをMarkdownファイルに変換したい場合、いくつかのライブラリを使う方法があります。今回は、よく使われる3つのライブラリを紹介します。
【ご紹介事項】
・ライブラリ3選
・Aspose.Wordsとは:商用なため高品質
・docx2mdとは:OSSライブラリ
・pypandocとは:OSSライブラリ
ライブラリ3選
PythonでWord文書をMarkdownファイルに変換したい場合、以下のライブラリがよく使われます。
名称 | サポートOS | ライセンス | 公式サイト |
Aspose.Words | Windows、MacOS、Linux | 商用のため有料 | Aspose英語サイト |
docx2md | Windows、MacOS、Linux | MIT | pypiのサイト |
pypandoc | Windows、MacOS、Linux | MIT | pypiのサイト |
本記事では、上記3つのライブラリに関して詳しく解説します。
Aspose.Wordsとは:商用なため高品質
PythonでWord文書をMarkdownファイルに変換したい場合、「Aspose.Words」ライブラリを使う方法があります。
以下の記事でライブラリのライセンスや概要をご紹介しています。気になる方は、ぜひ読んでみてください。
>>【5分でわかる】PythonでWordを新規作成する方法
docx2mdとは:OSSライブラリ
docx2mdライブラリの概要を以下に記載します。
【docx2mdとは】
docx2mdはPythonライブラリです。本ライブラリを使うことで「Word文書をMarkdownに変換」できます。
ライセンスに関して以下に記載します。
【ライセンスについて】
docx2mdのライセンスは、MIT(2023年6月2日時点)です。
特に制限なく、無料で使えます。
参照:
・docx2mdのライセンスページ(GitHub)
・MITとは(Wikipedia)
また、「直近でどのぐらい活発に開発されているか?」の情報は、以下のサイトから確認できます。
参照:docx2mdの開発頻度(GitHub)
上図より、docx2mdは活発に開発されているライブラリではないです。
そのため、脆弱性やバグがあった場合、即座に修正されず、利用者自身でライブラリの修正が必要になると考えられます。
商用で本ライブラリを使う際は、注意してください。
ちなみに、docx2mdは、以下の言語で開発されています。
参照:docx2mdの開発言語(GitHub)
pypandocとは:OSSライブラリ
pypandocライブラリの概要を以下に記載します。
【pypandocとは】
pypandocはPythonライブラリです。本ライブラリを使うことで「Word文書をMarkdownに変換」できます。pandocという多機能変換ツールをラッパーしているため、PDF形式などにも変換できます。
ライセンスに関して以下に記載します。
【ライセンスについて】
pypandocのライセンスは、MIT(2023年6月2日時点)です。特に制限なく、無料で使えます。ただし、pypandocの内部で使われているpandocは、GPLv2です。そのため、商用利用の際は注意してください。
参照:
・pypandocのライセンスページ(GitHub)
・MITとは(Wikipedia)
・pandocのライセンスページ(GitHub)
・GPLv2とは(Wikipedia)
また、「直近でどのぐらい活発に開発されているか?」の情報は、以下のサイトから確認できます。
参照:pypandocの開発頻度(GitHub)
上図より、pypandocは活発に開発されているライブラリに見えます。
そのため、脆弱性やバグがあった場合、即座に修正されると考えられます。
ちなみに、pypandocは、以下の言語で開発されています。
参照:pypandocの開発言語(GitHub)
以降で、環境準備を説明します。Pythonやライブラリのインストール手順を丁寧に解説しますね。
事前準備:各種インストール
「PythonでWordをmarkdownファイルに変換するための準備」に関してご紹介します。
【流れ】
手順1:Pythonのインストール
手順2:Aspose.Wordsのインストール
手順3:docx2mdのインストール
手順4:pandocとpypandocのインストール
手順5:Chromeで変換したMarkdownを確認する方法
上記の流れで説明します。
Pythonのインストール
以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。
>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】
>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照
>> 【環境構築】インストーラーでMacOSにPythonをインストール
Aspose.Wordsのインストール
Aspose.Wordsライブラリのインストール手順に関しては、以下の記事の「Aspose.Wordsのインストール」箇所をご覧ください。
>> 【5分でわかる】PythonでWordからテキストを抽出:3事例解説
docx2mdのインストール
以下のコマンド実行により、docx2mdライブラリをインストールできます。
pip install docx2md
pip list
コマンド実行後、「docx2md(バージョン)」が表示された場合、「正常にライブラリをインストールできた」と判断できます。
pandocとpypandocのインストール
以下のコマンド実行により、pandocをインストールできます。
pip install pypandoc_binary
pip install pypandoc
pip list
コマンド実行後、「pypandoc(バージョン)」と「pypandoc-binary(バージョン)」が表示された場合、「正常にライブラリをインストールできた」と判断できます。
Chromeで変換したMarkdownを確認する方法
最後に、変換したMarkdownをChrome上で確認するために、Chromeに「Markdown Preview Plus」プラグインをインストールしましょう。
Chromeをインストールされていない方は、以下の記事「手順1:Google Chromeをインストール」をご覧ください。
>> 【簡単】ChromeのHTTPリクエストをcURL形式で取得する手順
Chromeで以下のサイトにアクセスし、「Chromeに追加」ボタンを押しましょう。
>> Markdown Preview Plus(chromeウェブストア)
その後、Chromeで「chrome://extensions/?id=febilkbfcbhebfnokafefeacimjdckgl」にアクセスし、「ファイルの URL へのアクセスを許可する」を有効化しましょう(下図参照)。
以上の操作でChrome上でMarkdownを表示できるようになります。
以降で、Pythonを使ってWordをMarkdownに変換しファイルに出力するプログラムとその実行結果を解説します。
Word文書をMarkdownへ変換
「PythonでWord文書をMarkdownファイルへ変換する方法」に関してご紹介します。
【ご紹介事項】
・Aspose.Wordsの場合
・docx2mdの場合
・pypandocの場合
以降で、以下「sample-for-image.docx」のWordファイルを用いて、上記の各項目に関して説明します。
Aspose.Wordsの場合
Aspose.Wordsを使って、Word文書をMarkdownファイルに変換するプログラムに関しては、以下の公式サイトをご覧ください。
>> Pythonを使用してWord文書をMarkdownに変換する(Aspose.Wordsの公式サイト)
docx2mdの場合
docx2mdを使う場合、Pythonプログラムを作成する必要がないです。以下のコマンド実行で、「docx2mdを使ってWordをMarkdownに変換」できます。
python -m docx2md sample-for-image.docx ./output/sample.md
その結果、以下のようにWordをMarkdownに変換できます(下の動画参照)。
【docx2mdを含めた実行コマンドについて】
・書き方
python -m docx2md <変換したいWordのPATH> <変換後のMDファイルのPATH>
・処理
指定したWordをMarkdownファイルに変換し指定したPATHに保存
・参照
docx2mdコマンドのリファレンス(公式サイト)
pypandocの場合
「pypandocを使ってWordをMarkdownに変換する」Pythonプログラムは、以下となります。
import pypandoc
input_file = "sample-for-image.docx" # 変換したいWordファイルのPATH
output_file = "sample.md" # 変換後のMDファイルのPATH
output = pypandoc.convert_file(input_file, 'markdown', outputfile=output_file, extra_args=['--extract-media='])
上記のプログラムを「pypandoc-sample.py」というファイル名で保存しましょう。
【pypandoc.convert_file関数について】
・書き方
pypandoc.convert_file(Word文書のPATH,’markdown’, outputfile=変換後のMarkdownファイルの保存先, extra_args=[‘–extract-media=’])
・処理
指定したWordをMarkdownファイルに変換し指定したPATHに保存
・補足
extra_args=[‘–extract-media=’]を付けるとWord内の画像も変換対象となる
・参照
pypandoc.convert_file関数のリファレンス(公式サイト)
以下のコマンドで、上記プログラムを実行できます。
python pypandoc-sample.py
その結果、以下のようにWordをMarkdownに変換できます(下の動画参照)。
上記のようにAspose.Words、docx2md、pypandocを使うことでテキストファイルに変換できます。
ご紹介したMarkdown変換プログラムの応用例2選
先ほど作成したPythonプログラムを使うことで様々な作業を効率化できます。例えば、以下のような応用例が考えられます。
【ご紹介事項】
・職場のルールに従ったメールでの資料共有の時短
・データ分析ツールの制約でMarkdownファイル変換が必要!
以降で、上記項目に関して図を用いて簡単に説明しますね。
職場のルールに従ったメールでの資料共有の時短
職場によっては、メールでWord文書の共有を禁止していることがあります。その際に、Pythonをうまく使うことで、「Word文書の変換からメール送信」までを自動化できます。
下図のように、Pythonをうまく使うことで、3つの操作を1つの操作にまとめることができ、資料共有にかかる時間を短縮できます。
データ分析ツールの制約でMarkdownファイル変換が必要!
データ分析ツールの制約でMarkdownファイル変換が必要な場合、上記のプログラムを改造し適用することで、大量にあるWordファイルをMarkdownファイルへ変換する作業の時間短縮を実現できます。
上記のようにご紹介したライブラリとPythonをうまく使うことで、様々な作業を自動化し時短を実現できます。
Pythonを使うことで、Word文書をMarkdownに変換できることを説明しました。このPythonを使うことで、あらゆる業務や作業を自動化できます。
その事例やヒントを知りたい方には、以下の本がオススメです。
ちなみに、上記教材の詳細なレビューに関しては、以下のサイトにまとめています。
>> 「退屈なことはPythonにやらせよう」のレビューの一覧
【まとめ】3つのライブラリでMarkdown変換を実現!
いかがでしたでしょうか?
上記で紹介したAspose.Words、docx2md、pypandocライブラリを使うことで、PythonでWord文書をMarkdownに変換できます。
最後にもう一度内容を確認しましょう。
【おさらい】
・PythonでWordをMarkdownに変換したい場合、
Aspose.Words、docx2md、pypandocを使う
・docx2mdとpypandocは無料利用可能!ただしライセンスに注意が必要
・Pythonとご紹介したライブラリを使うことでデータ分析業務の時短が可能
ちなみに、「新規作成」「編集」「抽出」といった操作もPythonで実施できます。以下の記事にまとめているので興味がある方は是非ご覧ください。
本ブログでは、「業務の時短化に繋がるIT技術」や「クラウドやOSSの学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。
コメント