Files
personal_development/MarkdownConversion/ConverttoDOCX.txt
T
2025-08-04 12:58:29 -04:00

48 lines
2.0 KiB
Plaintext

import os
from markdown import markdown
from docx import Document
def convert_md_to_docx(md_file_path, docx_file_path):
"""Converts a Markdown file to a Word document."""
with open(md_file_path, 'r', encoding='utf-8') as md_file:
md_content = md_file.read()
# Convert Markdown to HTML
html_content = markdown(md_content)
# Create a Word document and add the HTML content
doc = Document()
doc.add_paragraph(html_content)
doc.save(docx_file_path)
print(f"Converted: {md_file_path} -> {docx_file_path}")
def convert_all_md_to_docx(root_directory, output_directory):
"""Traverse the directory tree and convert all .md files to .docx, storing them in a mirrored structure."""
for dirpath, dirnames, filenames in os.walk(root_directory):
for filename in filenames:
if filename.endswith('.md'):
md_file_path = os.path.join(dirpath, filename)
# Create mirrored directory structure in the output directory
relative_path = os.path.relpath(dirpath, root_directory)
target_dir = os.path.join(output_directory, relative_path)
os.makedirs(target_dir, exist_ok=True)
# Define the output .docx file path
docx_file_path = os.path.join(target_dir, os.path.splitext(filename)[0] + '.docx')
try:
convert_md_to_docx(md_file_path, docx_file_path)
except Exception as e:
print(f"Failed to convert {md_file_path}: {e}")
if __name__ == "__main__":
# Prompt user for the root directory and output directory
root_dir = input("Enter the root directory to scan for Markdown files: ").strip()
output_dir = input("Enter the output directory to store converted files: ").strip()
if os.path.exists(root_dir):
os.makedirs(output_dir, exist_ok=True) # Ensure output directory exists
convert_all_md_to_docx(root_dir, output_dir)
else:
print("The specified root directory does not exist.")