一段神奇的Python代码,拿走不谢

摘要:我现在连写文档也要用了,分享一个上周写的Python脚本,用于将Microsoft Word文档(.docx)转换为Markdown格式,同时保留文档中的格式和图片。from docx import Documentfrom PIL import Imagei

大家好,我是章北海

我现在连写文档也要用了,分享一个上周写的Python脚本,用于将Microsoft Word文档(.docx)转换为Markdown格式,同时保留文档中的格式和图片。from docx import Documentfrom PIL import Imageimport osfrom base64 import b64encodefrom docx.shape import InlineShapedef docx_to_markdown(docx_path, output_dir):# 创建输出目录 if not os.path.exists(output_dir):os.makedirs(output_dir)# 创建 images 子目录 images_dir = os.path.join(output_dir, 'images')if not os.path.exists(images_dir):os.makedirs(images_dir)# 打开 docx 文件 doc = Document(docx_path)markdown_content = # 处理每个段落 for para in doc.paragraphs:# 提取文本 text = para.text# 处理段落中的图片 for run in para.runs:if run._element.drawing_lst:for drawing in run._element.drawing_lst:# 获取图片关系 ID rid = drawing.xpath('.//a:blip/@r:embed')[0]image = doc.part.related_parts[rid]# 保存图片 image_filename = f'image_{len(os.listdir(images_dir))}.png'image_path = os.path.join(images_dir, image_filename)with open(image_path, 'wb') as f:f.write(image.blob)# 添加 markdown 图片语法 text += f'\n![image](images/{image_filename})\n'# 添加到 markdown 内容 markdown_content.append(text)# 写入 markdown 文件 output_path = os.path.join(output_dir, 'output.md')with open(output_path, 'w', encoding='utf-8') as f:f.write('\n\n'.join(markdown_content))return output_path# 使用示例 docx_path = '你的文档路径.docx'output_dir = '输出目录路径'markdown_file = docx_to_markdown(docx_path, output_dir)脚本功能

文本转换:将docx文档中的段落文本转换为Markdown格式。

图片处理:提取文档中的图片并保存到images文件夹中,同时在Markdown文件中插入相应的图片引用。

在运行此脚本之前,请确保已安装以下软件:

Python 3.6或更高版本

pip(Python包管理器)

安装

拷贝代码在的本地计算机。

使用以下命令安装所需的Python库:

pip install python-docx Pillow使用方法

将您要转换的.docx文件放在项目目录中。

打开docx_to_markdown.py文件,并根据需要修改以下变量:

docx_path = '你的文档路径.docx'output_dir = '输出目录路径'

docx_path:要转换的 docx 文件的路径。

output_dir:生成的 Markdown 文件和图片的输出目录。

在终端中运行脚本:

转换完成后,您将在指定的输出目录中找到output.md文件和文件夹。output.md是转换后的Markdown文件,images文件夹中包含文档中的所有图片。

其实还能改成批量处理,感兴趣可以试试。

来源:科技大鹅童

相关推荐