网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

大家好,我是章北海

我现在连写文档也要用Cursor了,Word转Markdown是刚需

分享一个上周写的Python脚本,用于将Microsoft Word文档(.docx)转换为Markdown格式,同时保留文档中的格式和图片。

from docx import Document
from PIL import Image
import os
from base64 import b64encode
from docx.shape import InlineShape

def 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包管理器)

安装
  1. 拷贝代码在的本地计算机。

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

    pip install python-docx Pillow
使用方法
  1. 将您要转换的.docx文件放在项目目录中。

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

    docx_path = '你的文档路径.docx'
    output_dir = '输出目录路径'
  • docx_path:要转换的 docx 文件的路径。

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

在终端中运行脚本:

python docx_to_markdown.py

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

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
公司裁掉两个年薪50+万元工程师,花2小时教他用Claude Code「接盘」:“我年薪17万,一个人干三个人的活!”

公司裁掉两个年薪50+万元工程师,花2小时教他用Claude Code「接盘」:“我年薪17万,一个人干三个人的活!”

CSDN
2026-10-22 15:41:44
37岁窦骁宣布喜讯

37岁窦骁宣布喜讯

背包旅行
2026-10-20 19:12:47
能飞两天不落地、航程破万公里,攻击-3A究竟有多可怕

能飞两天不落地、航程破万公里,攻击-3A究竟有多可怕

装甲铲史官
2026-10-22 10:42:34
浙江男篮官宣:刘泽一右侧眉骨破裂缝30余针 预计伤停两周

浙江男篮官宣:刘泽一右侧眉骨破裂缝30余针 预计伤停两周

醉卧浮生
2026-10-22 10:19:01
又一电诈头目落网!坑害国人超27亿,杀人不眨眼,全网呼吁查赵薇

又一电诈头目落网!坑害国人超27亿,杀人不眨眼,全网呼吁查赵薇

泪满过眼
2026-10-10 07:24:15
爱德华兹一战创下三大纪录,比肩乔丹张伯伦,NBA80年新纪录诞生

爱德华兹一战创下三大纪录,比肩乔丹张伯伦,NBA80年新纪录诞生

南海浪花
2026-10-22 10:40:24
伊朗最高领袖会见议会议长,数十架以军战机被曝飞近伊朗边境“诱使伊朗开火”,美国制裁多个“帮助隐藏和运输伊朗大宗商品”的个人与实体

伊朗最高领袖会见议会议长,数十架以军战机被曝飞近伊朗边境“诱使伊朗开火”,美国制裁多个“帮助隐藏和运输伊朗大宗商品”的个人与实体

政知新媒体
2026-10-22 08:44:11
“还不分床,等着看德国骨科?”家长晒姐弟俩午睡一幕,让过来人直言:你会后悔的

“还不分床,等着看德国骨科?”家长晒姐弟俩午睡一幕,让过来人直言:你会后悔的

妍妍教育日记
2026-09-14 21:18:41
马德兴:因凡蒂诺抵达东京,希望在亚足联内部拉到足够的选票

马德兴:因凡蒂诺抵达东京,希望在亚足联内部拉到足够的选票

懂球帝
2026-10-22 16:32:44
都错怪高市早苗了?石破茂直言,这个女人不仅坏,还特别的蠢

都错怪高市早苗了?石破茂直言,这个女人不仅坏,还特别的蠢

云上乌托邦
2026-10-22 17:05:35
用的让人恼火!苹果iPhone Duo海外媒体评价一览:真的不够成熟 为折叠而折叠

用的让人恼火!苹果iPhone Duo海外媒体评价一览:真的不够成熟 为折叠而折叠

快科技
2026-10-22 08:56:08
楼下餐馆油烟天天熏我家,老板态度极其嚣张,我没争辩每天倒香精,一个月后他赔了4万多登门求饶

楼下餐馆油烟天天熏我家,老板态度极其嚣张,我没争辩每天倒香精,一个月后他赔了4万多登门求饶

晓艾故事汇
2026-10-22 11:24:31
欠了快400亿,被骂了十年,华西村靠一笔“冷门投资”绝境翻盘

欠了快400亿,被骂了十年,华西村靠一笔“冷门投资”绝境翻盘

麓谷隐士
2026-09-06 00:10:03
云南这则新闻,难道代价就只能落到老百姓头上?

云南这则新闻,难道代价就只能落到老百姓头上?

胖胖说他不胖
2026-09-29 10:00:34
张子宇:感谢大家无私地为我传球去助攻;正在努力地控制体重

张子宇:感谢大家无私地为我传球去助攻;正在努力地控制体重

懂球帝
2026-10-22 09:50:09
中央党报发声,懂车帝的商业模式悬了

中央党报发声,懂车帝的商业模式悬了

起点财经
2026-10-20 08:49:41
最大风力16级,台风“蔷琵”最新路径公布!浙江大雨暴雨,局部大暴雨,调整防台风应急响应为IV级

最大风力16级,台风“蔷琵”最新路径公布!浙江大雨暴雨,局部大暴雨,调整防台风应急响应为IV级

台州交通广播
2026-10-22 10:10:35
一个奇怪现象 : 为何网上失业哀鸿遍野 , 现实中大家都按部就班的工作

一个奇怪现象 : 为何网上失业哀鸿遍野 , 现实中大家都按部就班的工作

青史卷中人
2026-10-03 02:55:17
《街头霸王》真人电影春丽特写洗澡戏 全身一览无余

《街头霸王》真人电影春丽特写洗澡戏 全身一览无余

3DM游戏
2026-10-21 07:50:11
当众拒唱国歌不认中国籍,把两个孩子全送出国,如今报应终于来了

当众拒唱国歌不认中国籍,把两个孩子全送出国,如今报应终于来了

鹤羽说个事
2026-09-02 16:51:59
2026-10-22 21:27:00
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3552文章数 11213关注度
往期回顾 全部

科技要闻

腾讯云谷歌紧急行动!互联网安全出大事

头条要闻

坠亡2岁男童父亲望维持婚姻:每月给妻子1万 父母出6千

头条要闻

坠亡2岁男童父亲望维持婚姻:每月给妻子1万 父母出6千

体育要闻

卢卡:伦德伯格,欢迎来到NBA

娱乐要闻

芭莎盛典,张小斐因救场实现口碑暴涨

财经要闻

数据中心建设延期潮 谁受伤、谁受益?

汽车要闻

搭城市NOA/续航555KM 捷达M6上市售7.98万起

态度原创

房产
健康
教育
时尚
军事航空

房产要闻

租金大跳水!荒了6年,海口这个地标商业,开始急了!

痘痘能根治吗?皮肤科医生说实话

教育要闻

数学就是这么简单

“廓形穿衣法”太火了!这5个法则松弛又好看

军事要闻

泽连斯基"愿以领土换和平协议" 普京表态

无障碍浏览 进入关怀版