MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)

MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)

本文目录:

零、时光宝盒🌻

一、简介

二、安装

三、使用方法

3.1、使用命令行形式

[3.2、用 Python 调用](#3.2、用 Python 调用)

四、总结

五、参考资料


零、时光宝盒🌻

**(**https://blog.csdn.net/weixin_69553582 逆境清醒)

在心理学中,有个实验------三山实验,是1956年,让·皮亚杰(Jean Piaget)设计的。

这三山实验的场景设置在一个小房间内,房间中央摆放着三座高低不一的山模型,实验对象是一群4到7岁的孩子。

"你从这里看,这三座山是什么样的?"孩子们会很自然地描述他们眼前看到的山。

无论孩子们是坐在房间的一侧,还是坐在房间的另一侧,孩子们都能准确描述他们眼前看到的山的景象。

然而,当皮亚杰问到:"如果你们的玩具伙伴小熊坐在你刚才的位置,它看到的山会是什么样子?"孩子们往往会说:"小熊看到的也是我看到的这样的山。

大多数4到7岁的孩子无法理解小熊从另一个角度看到的山会与他们自己看到的不同。他们往往会说:"小熊看到的也是这样的山。"即使皮亚杰继续引导,孩子们仍然难以摆脱自己的视角,去设想小熊的视角。这一现象被称为"自我中心性"。

然而,当实验对象变为8岁及以上的孩子时,情况发生了变化。这些孩子能够准确地描述出小熊从另一个角度看山的情景,甚至还能画出不同视角的山的示意图。这表明他们已经具备了一定的"去中心化"能力,能够站在他人的角度思考问题。

在现实生活中,我们常常会遇到类似的情境。比如,当你与朋友发生争执时,你是否能够设身处地地站在对方的角度思考问题?当你批评孩子的行为时,你是否意识到他们的认知局限?这些问题看似简单,但要想真正做到,却需要我们不断努力和反思。

它告诉我们,每个人都有自己的视角,而理解和尊重他人的视角是我们社交和沟通的基础。当我们开始尝试从他人的角度思考问题,我们不仅变得更加成熟,也更加智慧。

逆境清醒

2024.12.25


一、简介

微软近期在GitHub平台上推出了一款名为MarkItDown的开源Python工具库,为用户提供了将多种文件格式转换为Markdown格式的便捷途径。

MarkItDown不仅支持将Office文档如Word、Excel、PowerPoint等转换为Markdown,还能处理PDF、图片、音频、HTML以及多种文本格式,如csv、json和xml等。

通过该工具,用户可以轻松地将各类文档转换为Markdown格式,进而便于文本的索引、搜索和分析等操作。

MarkItDown 是一个用于将各种文件转换为 Markdown 的实用程序(例如,用于索引、文本分析等)。 将各类文档自动转换为 Markdown 格式,它支持:

  • PDF
  • PowerPoint
  • Word
  • Excel
  • Images (EXIF metadata and OCR)
  • Audio (EXIF metadata and speech transcription)
  • HTML
  • Text-based formats (CSV, JSON, XML)
  • ZIP files (iterates over contents)

MarkItDown在MIT开源许可下发布,这意味着开发人员可以自由地使用、修改和分发该工具库。唯一的限制是在分发时,需要包含原始的许可证和版权声明,以确保开源社区的权益得到保护。

二、安装

最佳环境要求:Python语言:3.12

要安装 MarkItDown,可以通过 pip 安装工具使用命令:

python 复制代码
pip install markitdown

或者,

您可以从源安装它:

python 复制代码
pip install -e .

三、使用方法

MarkItDown 提供了便捷的命令行工具,支持多种输入方式:

3.1、使用命令行形式

命令格式:

python 复制代码
markitdown path-to-file.pdf > document.md

举例:

将example.pdf 文件生成output.md

命令如下:

python 复制代码
markitdown example.pdf > output.md

还可以通过管道传输内容:

cat path-to-file.pdf | markitdown

python 复制代码
cat path-to-file.pdf | markitdown

3.2、用 Python 调用

3.2.1 、Python 中的基本用法

用 Python 调用并转换文件内容的命令格式如下:

python 复制代码
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)

3.2.2、测试不同格式文件转换Markdown的效果

(1) 、Excel表格转换成Markdown 格式

Excel文件 TIOBE202412.xlsx内容如下:

执行代码:

python 复制代码
# Excel表格转换成Markdown 格式

from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("TIOBE202412.xlsx")
print(result.text_content)

输出结果:

python 复制代码
## TIOBE 12月编程语言流行度排名
| 2024-12-01 00:00:00 | 2023-12-01 00:00:00 | Unnamed: 2 | Ratings | Change |
| --- | --- | --- | --- | --- |
| 1 | 1 | Python | 0.2384 | 0.0998 |
| 2 | 3 | C++ | 0.1082 | 0.0081 |
| 3 | 4 | Java | 0.0972 | 0.0173 |
| 4 | 2 | C | 0.0910 | -0.0234 |
| 5 | 5 | C# | 0.0487 | -0.0243 |
| 6 | 6 | JavaScript | 0.0461 | 0.0172 |
| 7 | 13 | Go | 0.0217 | 0.0114 |
| 8 | 9 | SQL | 0.0199 | 0.0037 |
| 9 | 8 | Visual Basic | 0.0196 | 0.0014 |
| 10 | 12 | Fortran | 0.0179 | 0.0072 |
| 11 | 16 | Delphi/Object Pascal | 0.0144 | 0.0052 |
| 12 | 7 | PHP | 0.0139 | -0.0062 |
| 13 | 11 | Scratch | 0.0133 | 0.0026 |
| 14 | 18 | Rust | 0.0129 | 0.0048 |
| 15 | 14 | MATLAB | 0.0109 | 0.0016 |
| 16 | 20 | R | 0.0105 | 0.0033 |
| 17 | 10 | Assembly language | 0.0104 | -0.0007 |
| 18 | 19 | Ruby | 0.0103 | 0.0026 |
| 19 | 23 | COBOL | 0.0098 | 0.0030 |
| 20 | 17 | Swift | 0.0098 | 0.0016 |

代码渲染效果如下:

测试结果:

markitdown V0.0.1a3版本,

简单表格可以正常转换,但数字由%转换成了小数格式。

(2) 、Word文档转换成Markdown 格式

Word文件 "test.docx"内容如下:

在命令行执行:

markitdown test.docx > document.md

生成的document.md内容如下:

python 复制代码
## 第一章、概述

MarkItDown is a utility for converting various files to Markdown (e.g., for indexing, text analysis, etc). It supports:

* PDF
* PowerPoint
* Word
* Excel
* Images (EXIF metadata and OCR)
* Audio (EXIF metadata and speech transcription)
* HTML
* Text-based formats (CSV, JSON, XML)
* ZIP files (iterates over contents)

## 第二章、统计

| **(过去 12 个月** | **最大值** | **平均值** | **最小值** |
| --- | --- | --- | --- |
| 高温 (°C) | 38 | 28 | 9 |
| 低温 (°C) | 29 | 22 | 7 |
| 降水 (毫米) | 160.55 | 8.86 | 0 |
| 风速 (公里/小时) | 19 | 8.89 | 3 |

## 第三章、特色

### 1. 预览本地文档

您可以上传并在线查看您计算机的文档。

### 2. 预览网络文档

您可以对网络文档进行预览。

### 3. 阅读进度条

doc, docx, ppt, pptx和txt文档大于约3页时,预览页面底部会出现阅读进度条。

### 4. 安全等级

每个文档都可以设置两种访问方式:

公开:任何人可以访问并预览,适用于公开文档

私有:只能通过会话ID预览,会话过期后就需要重新获取预览会话ID,该预览方式适用于私有文档

## 第四章、系统架构

### 1. 单机版架构

I Doc View在线文档预览服务

Tomcat/Jetty

Nginx/Apache

数据库

I Doc View文档转换器

网页浏览器:手机、平板或电脑

原始文档

转换文档

I Doc View在线文档预览服务所需软件分为两类:

1. 私有软件:包括"在线文档预览服务WEB应用"和"在线文档预览转换器",这两种软件的获取与授权详情请联系I Doc View客服;

2. 公有软件:公有软件为I Doc View在线文档预览服务正常运行所需的其他软件,大部分开源免费,根据自己实际情况从其官网获取,也可从I Doc View提供的统一下载地址来获取。

配置示例:

upstream docview\_backend\_cluster {

hash $arg\_md5 consistent;

server docview1;

server docview2;

server {

server\_name https://blog.csdn.net/weixin\_69553582;

location / {

proxy\_pass http://docview\_backend\_cluster;

}

}

或者通过代码执行:

python 复制代码
from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("test.docx")
print(result.text_content)

结果经过渲染后得到的markdown页面效果:

总结:

markitdown V0.0.1a3版本,

word文档里的简单表格和文字能够转换成markdown格式,但word里的绘图无法转换

(3)、PDF文档转换成Markdown 格式

将PDF文件转换成.md格式的文件的命令格式:

python 复制代码
markitdown pdf文件 > 你的文件名.md
python 复制代码
markitdown path-to-file.pdf > document.md

或者使用-o指定输出文件:

python 复制代码
markitdown path-to-file.pdf -o document.md

PDF文件 "圣诞节.pdf "内容如下:

我通过命令行,将"圣诞节.pdf "文件转换成"output.md"格式的文件,

执行命令如下:

python 复制代码
markitdown 圣诞节.pdf > output.md

转换后的"output.md"文件内容如下:

测试结果:

markitdown V0.0.1a3版本,

"圣诞节.pdf "文件能转换成"output.md"格式的文件,但pdf里面的图片不能转换到md文档里面

只能提取文本,但整个结构丢失了,它只转换为文本,而不是 Markdown,并且标题和表格无法转换。

3.2.3、使用大型语言模型

要使用大型语言模型进行图像描述,请提供llm_client和llm_model:

python 复制代码
from markitdown import MarkItDown
from openai import OpenAI

client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)

四、总结

MarkItDown 是一个用于将各种文件转换为 Markdown 的实用程序(例如,用于索引、文本分析等)。 通过一行或几行代码将各类文档自动转换为 Markdown 格式,这个功能很方便。但可能是因为刚开始,markitdown V0.0.1a3版本在转换过程中仍有些问题,仍有优化的空间。

通过MarkItDown将word、execel、PDF等文件转换为Markdown 格式,我们在此基础上再修改,可以节省不少时间。

五、参考资料:

GitHub - microsoft/markitdown: Python tool for converting files and office documents to Markdown.


推荐阅读:

|----------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
| | | |
| ​​​​ | ​​​​ | ​​​​ |
| 给照片换底色(python+opencv) | 猫十二分类 | 基于大模型的虚拟数字人__虚拟主播实例 |
| | | |
| 计算机视觉__基本图像操作(显示、读取、保存) | 直方图(颜色直方图、灰度直方图) | 直方图均衡化(调节图像亮度、对比度) |
| | | |
| 语音识别实战(python代码)(一) | 人工智能基础篇 | 计算机视觉基础__图像特征 |
| | | |

逆境清醒

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | | |
| | | |
| matplotlib 自带绘图样式效果展示速查(28种,全) | | |
| | | |
| | | |
| | | |
| | | |
| Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一) | | |
| | | |
| | | |
| | | |
| 立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦 | Python 3D可视化(一) | 让你的作品更出色------词云Word Cloud的制作方法(基于python,WordCloud,stylecloud) |
| | | ​​​​​​​ |
| python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印 | 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心) | python爱心源代码集锦(18款) |
| ​​​​​​​ | ​​​​​​​ | ​​​​​​​ |
| Python中Print()函数的用法___实例详解(全,例多) | Python函数方法实例详解全集(更新中...) | 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念 |
| ​​​​​​​ | ​​​​​​​ | |
| 用代码过中秋,python海龟月饼你要不要尝一口? | python练习题目录 | |
| ​​​​​​​ | ​​​​​​​ | ​​​​​​​ |
| 草莓熊python turtle绘图(风车版)附源代码 | ​草莓熊python turtle绘图代码(玫瑰花版)附源代码 | ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码 |
| | | |
| | | |
| ​​​​​​​ | ​​​​​​​ | |
| 巴斯光年python turtle绘图__附源代码 | 皮卡丘python turtle海龟绘图(电力球版)附源代码 | |
| | | |

|------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | | |
| ​​​​​​​ | ​​​​​​​ | ​​​​​​​ |
| Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细) | 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名) | 2024年12月多家权威机构____编程语言排行榜__薪酬状况 |
| | | |
| | | |
| ​ | ​​​​​​​ | ​​​​​​​ |
| 手机屏幕坏了____怎么把里面的资料导出(18种方法) | 【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向) | 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决 |
| | | |

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | | |
| ​​​​​​​ | | |
| vue3 项目搭建教程(基于create-vue,vite,Vite + Vue) | | |
| ​​​​​​​ | ​​​​​​​ | ​​​​​​​ |
| 2023年春节祝福第二弹------送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特 | 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套) | SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例) |
| ​​​​​​​ | ​​​​​​​ | ​​​​​​​ |
| 【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码) | HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码) | 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载) |

|------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|
| ​​​​​​​ | ​​​​​​​ | ​​​​​​​ |
| tomcat11、tomcat10 安装配置(Windows环境)(详细图文) | Tomcat端口配置(详细) | Tomcat 启动闪退问题解决集(八大类详细) |
| | | |

逆境清醒

相关推荐
Dovir多多2 小时前
Python数据处理——re库与pydantic的使用总结与实战,处理采集到的思科ASA防火墙设备信息
网络·python·计算机网络·安全·网络安全·数据分析
沐霜枫叶4 小时前
解决pycharm无法识别miniconda
ide·python·pycharm
途途途途5 小时前
精选9个自动化任务的Python脚本精选
数据库·python·自动化
蓝染然5 小时前
jax踩坑指南——人类早期驯服jax实录
python
许野平5 小时前
Rust: enum 和 i32 的区别和互换
python·算法·rust·enum·i32
问道飞鱼5 小时前
【Python知识】Python进阶-什么是装饰器?
开发语言·python·装饰器
AI视觉网奇6 小时前
Detected at node ‘truediv‘ defined at (most recent call last): Node: ‘truediv‘
人工智能·python·tensorflow
GuYue.bing6 小时前
网络下载ts流媒体
开发语言·python
牛顿喜欢吃苹果6 小时前
linux创建虚拟串口
python
-Mr_X-6 小时前
FFmpeg在python里推流被处理过的视频流
python·ffmpeg