python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python Markdown格式转换

Python实现将Word、Excel、PDF转换为Markdown格式

作者:逆境清醒

MarkItDown 是一个用于将各种文件转换为 Markdown 的实用程序,可以将各类文档自动转换为 Markdown 格式,下面小编就和大家详细介绍一下它的具体使用吧

一、简介

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

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

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

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

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

二、安装

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

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

pip install markitdown

或者,

您可以从源安装它:

pip install -e .

三、使用方法

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

3.1、使用命令行形式

命令格式:

markitdown path-to-file.pdf > document.md

举例:

将example.pdf 文件生成output.md

命令如下:

markitdown example.pdf > output.md

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

cat path-to-file.pdf | markitdown

cat path-to-file.pdf | markitdown

3.2、用 Python 调用

Python 中的基本用法

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

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

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

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

Excel文件 TIOBE202412.xlsx内容如下:

执行代码:

# Excel表格转换成Markdown 格式

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

输出结果:

## 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内容如下:

## 第一章、概述
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;
}
}

或者通过代码执行:

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格式的文件的命令格式:

markitdown pdf文件 > 你的文件名.md

markitdown path-to-file.pdf > document.md

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

markitdown path-to-file.pdf -o document.md

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

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

执行命令如下:

markitdown 圣诞节.pdf > output.md

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

测试结果:

markitdown V0.0.1a3版本,

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

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

使用大型语言模型

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

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 格式,我们在此基础上再修改,可以节省不少时间。

以上就是Python实现将Word、Excel、PDF转换为Markdown格式的详细内容,更多关于Python Markdown格式转换的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文