Python素人向けの内容です。
テキストファイルの高度な検索置換技術、正規表現をPythonで行います。一定のルールで書かれたテキストファイルを構造化したいとき、正規表現を使えば便利です。
コードの中の# 検索と置換を行う
部分を書き換えれば汎用性が高く、どのようなパターンにも変換できます。
今回は、マインドマップソフトXmindでチャートを整形するところまで行いました。
- チャート作成には構造化が必須
- 箇条書きテキストの構造をPythonで一発で書き換える
- 箇条書き文章をさらに構造化するPythonコード
- サンプル文書
- 実際の正規表現のPythonコード
- Xmindのクーポンコード
チャート作成には構造化が必須
アポロ計画の年表をチャートにしてみました。下図左は元テキストから作成したもの。中央の図や右右図は構造化してからチャート化したものです。中央図、右図の方がすっきりします。
テキストの編集は手作業でも出来ますが、手間と時間がかかります。テキストの検索置換は、Pythonで行うと手早く出来ます。
一度コードを作っておくと、検索置換のコードを少し変更するだけで、様々なケースで使うことが出来ます。
箇条書きテキストの構造をPythonで一発で書き換える
変更前
- aaa : bbb - ccc
変更後(第2階層)
## aaa ### bbb ### ccc
変更後(第3階層)
## aaa ### bbb #### ccc
箇条書き文章をさらに構造化するPythonコード
今回はもともと箇条書きデータですが、ハイフン-
で区切られています。Xmindというマインドマップソフトに取り込む予定でしたが、
content = content.replace('- ', '## ') content = content.replace(' - ', '\n### ') content = content.replace(': ', '\n### ')
サンプル文書
元のテキスト
# アポロ計画の年表 - SA-1: 1961年10月27日 - 最初のテスト飛行。 - AS-201 (サターンIB): 1966年2月26日 - 打上げロケット開発のための飛行。 - アポロ1号: 1967年1月27日 - 火災事故により乗務員が死亡。
Pythonの正規表現で修正したテキスト
検索置換にかかる時間は1秒以内。手早く検索置換が出来るのがPythonのよいところです。
# アポロ計画の年表 ## SA-1 ### 1961年10月27日 ### 最初のテスト飛行。 ## AS-201 (サターンIB) ### 1966年2月26日 ### 打上げロケット開発のための飛行。 ## アポロ1号 ### 1967年1月27日 ### 火災事故により乗務員が死亡。
実際の正規表現のPythonコード
# ファイルのパス file_path = 'アポロ計画の年表.md' # ファイルを読み込む with open(file_path, 'r', encoding='utf-8') as file: content = file.read() # 検索と置換を行う content = content.replace(' - ', '\n#### ') content = content.replace(': ', '\n### ') content = content.replace('- ', '## ') # 結果を同じファイルに書き込む(または新しいファイルパスを指定) with open(file_path, 'w', encoding='utf-8') as file: file.write(content) print("置換が完了しました。")
Xmindのクーポンコード
マインドマップソフトとしてはもちろん、構造化されたMarkdownテキストをチャート化できるXmindは非常に便利なソフトです。
無料版でもかなりの部分は使えます。一度ダウロードをお勧めします。
有料版をご検討の方、下記リンクからなら15%オフでご購入いただけます。
クーポンコードはこちらです。
XMINDOFFERD43