タイトル通りです。
複数のMarkdownファイルから、コードブロックを抽出し、ファイルに保存します。
ファイル名がダブっていたら、上書きしてしまいます。
Designed BY T.Maekawa
Code BY Google AI studio and T.Maekawa
Check By T.Maekawa
google AI studioのコードはPDSなので勝手に使っていいと書いてあったけれど、クレジットを入れました。
md2file.py
#!/usr/bin/python
import re
import os
import sys
def extract_code_blocks(markdown_files, output_dir="extracted_code"):
"""
複数のMarkdownファイルからコードブロックを抽出し、ファイルに保存します。
Args:
markdown_files: Markdownファイルのパスを格納したリスト。
output_dir: 抽出したコードを保存するディレクトリ。
"""
if not os.path.exists(output_dir):
os.makedirs(output_dir)
cnt=0
for markdown_file in markdown_files:
with open(markdown_file, 'r', encoding='utf-8') as f:
content = f.read()
# ```filename と ``` で囲まれた部分を抽出
matches = re.findall(r"```(.*?)\n([\s\S]*?)```", content)
for match in matches:
path = match[0].strip() # ファイル名部分を抽出
filename = os.path.basename(path)
code = match[1]
# ファイル名がない場合。
if filename=="":
filename=f"file{cnt:0{5}}"
cnt+=1
if ":" in filename:
filename = filename.split(":")[1]
filepath = os.path.join(output_dir, filename)
with open(filepath, 'w', encoding='utf-8') as outfile:
outfile.write(code)
print(f"コードブロックを {filepath} に保存しました。")
if __name__ == "__main__":
markdown_files = sys.argv[1:]
extract_code_blocks(markdown_files)