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

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

本文目录:

零、时光宝盒🌻

一、简介

二、安装

三、使用方法

3.1、使用命令行形式

3.2、用 Python 调用

四、总结

五、参考资料


 零、时光宝盒🌻

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

2ab463de26a541818271efa176656ae6.png

  在心理学中,有个实验——三山实验,是1956年,让·皮亚杰(Jean Piaget)设计的。
  这三山实验的场景设置在一个小房间内,房间中央摆放着三座高低不一的山模型,实验对象是一群4到7岁的孩子。
  “你从这里看,这三座山是什么样的?”孩子们会很自然地描述他们眼前看到的山。
  无论孩子们是坐在房间的一侧,还是坐在房间的另一侧,孩子们都能准确描述他们眼前看到的山的景象。
  然而,当皮亚杰问到:“如果你们的玩具伙伴小熊坐在你刚才的位置,它看到的山会是什么样子?”孩子们往往会说:“小熊看到的也是我看到的这样的山。

  大多数4到7岁的孩子无法理解小熊从另一个角度看到的山会与他们自己看到的不同。他们往往会说:“小熊看到的也是这样的山。”即使皮亚杰继续引导,孩子们仍然难以摆脱自己的视角,去设想小熊的视角。这一现象被称为“自我中心性”。
  然而,当实验对象变为8岁及以上的孩子时,情况发生了变化。这些孩子能够准确地描述出小熊从另一个角度看山的情景,甚至还能画出不同视角的山的示意图。这表明他们已经具备了一定的“去中心化”能力,能够站在他人的角度思考问题。


  在现实生活中,我们常常会遇到类似的情境。比如,当你与朋友发生争执时,你是否能够设身处地地站在对方的角度思考问题?当你批评孩子的行为时,你是否意识到他们的认知局限?这些问题看似简单,但要想真正做到,却需要我们不断努力和反思。
  它告诉我们,每个人都有自己的视角,而理解和尊重他人的视角是我们社交和沟通的基础。当我们开始尝试从他人的角度思考问题,我们不仅变得更加成熟,也更加智慧。

       逆境清醒 

2024.12.25

7f8eafc867aa425cab7d368ee0eb4dd8.gif


一、简介

  微软近期在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 安装工具使用命令:

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 调用

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

执行代码:

# 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,并且标题和表格无法转换。

3.2.3、使用大型语言模型

要使用大型语言模型进行图像描述,请提供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 格式,我们在此基础上再修改,可以节省不少时间。

五、参考资料:

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


推荐阅读:

27d5b50d93a089da35ee1a28905f9719.jpeg​​​​

c64d8b4d0b6842ebe1196c0b1e3fba51.jpeg​​​​

a136a43cd0015088d4ce37b1bb653533.jpeg​​​​

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

0f92b28e915ca3cc26cfaaf47c5fc62d.jpeg

5d2b51be3e7e932be95355088e17d524.jpeg

3cf3fe3c1a186bfcbf12d4755b8950ae.jpeg

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

849b7a72434213407c862c8f8e071a22.png

9412a31659ba6db83d806c3f354dd1c0.png

fb29a865f75af8352dca5e3d56a09004.png

语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

逆境清醒

637c349e8206c0651d1f2751ba128912.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

ec9793633e16de7b52fbf0b74ecfa2f3.png

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

6e420cca6a1313b93948785f689f5723.png

1da3f182e081ad8f3cfcf53013909b8b.png

ca733c1a99c6457a762d0e503855ce79.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

f92dfeb72ec683025a63db2fe8a26492.png

1b2a866ebb074a1e5859dad42c435d5c.jpeg

8207b63755bf37b10807a046080f14df.png​​​​​​​

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

b97d56fe7e3ce6234cb182ad86fef4ed.jpeg​​​​​​​

6871f222e7db3f8ce83336ad50311c3a.png​​​​​​​

b89ed1147e8a76e6c64b812d65e8f2ef.png​​​​​​​

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

7090a17485b11d9da69e37e5756c6910.png​​​​​​​

50313523c8c19f29270fb1110fe66ae9.png​​​​​​​

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

4c77c7a60782637db9e27b3deec7abee.png​​​​​​​

c397ed3a22c7885194eb92b5b3883322.png​​​​​​​

a18fbd27f15eaa98f0bb5a4fed8cbd8b.png​​​​​​​

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

36e2af3bf474c59b9c430b223417793b.png​​​​​​​

542dbf91cfafa23e1ccdee94a7b22397.png​​​​​​​

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

68b0f4704053ab870c16bb4e37897d63.png​​​​​​​

25ff4b8d741f0942c50dd96b7e866386.jpeg​​​​​​​

59bb0955631256520f0edd17f8304669.jpeg​​​​​​​

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2024年12月多家权威机构____编程语言排行榜__薪酬状况

7dda70990181a20a430cc7b13dc9d8aa.png

a1fea2de0187913a4cdb18473c512c55.png​​​​​​​

96e1df3760ce3017026da2d1de069869.png​​​​​​​

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

fa753f11d26d967646a85b78b53dc703.png​​​​​​​

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

4290a52c20eee861ee159e17659342f5.png​​​​​​​

b126b976989a1e4f1ae40867407e8f4d.png​​​​​​​

15f065b7e46b238db1e7382f70fd7076.png​​​​​​​

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

f3a00b9bf85e8d36c21d8e9785f43a53.png​​​​​​​

1f143789d9652fd35c1fabf11b6f149c.png​​​​​​​

2c8047a9f87aa22a8abe57ad0081b1d9.png​​​​​​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

a01e7c6663c27936b3c174265db14012.png​​​​​​​

6d12eed561af36157625a07b771f9b0b.png​​​​​​​

af9dcebc4110cf5b9a012a3ef7d268fe.png​​​​​​​

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

逆境清醒

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

akamai3.0 wizzair 网站 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

kubernetes Gateway API-1-部署和基础配置

文章目录 1 部署2 最简单的 Gateway3 基于主机名和请求头4 重定向 Redirects4.1 HTTP-to-HTTPS 重定向4.2 路径重定向4.2.1 ReplaceFullPath 替换完整路径4.2.2 ReplacePrefixMatch 替换路径前缀5 重写 Rewrites5.1 重写 主机名5.2 重写 路径5.2.1 重新完整路径5.2.1 重新部分路…

likeAdmin架构部署(踩坑后的部署流程

1、gitee下载 https://gitee.com/likeadmin/likeadmin_java.git 自己克隆 2、项目注意 Maven:>3.8 ❤️.9 (最好不要3.9已经试过失败 node :node14 (不能是18 已经测试过包打不上去使用14的换源即可 JDK:JDK8 node 需要换源 npm c…

宠物行业的出路:在爱与陪伴中寻找增长新机遇

在当下的消费市场中,如果说有什么领域能够逆势而上,宠物行业无疑是一个亮点。当人们越来越注重生活品质和精神寄托时,宠物成为了许多人的重要伴侣。它们不仅仅是家庭的一员,更是情感的寄托和生活的调剂。然而,随着行业…

Java 堆排序原理 图文详解 代码逻辑

文章目录 1. 时间复杂度 & 空间复杂度2. 大顶堆、小顶堆3. 具体步骤 & 原理1. 判断是否满足堆的性质2. 维护堆的性质3. 交换位置 4. 代码实现 1. 时间复杂度 & 空间复杂度 时间复杂度: O(nlogn) 建堆时间复杂度: O(n) 排序时间复杂度: O(nlogn)空间复杂度: O(1) …

计算机网络|数据流向剖析与分层模型详解

文章目录 一、网络中的数据流向二、计算机网络通信模型1.OSI 模型2.TCP/IP 模型3.TCP/IP五层模型3.1 分层架构描述3.2各层地址结构3.3UDP数据包报头结构 三、总结 一、网络中的数据流向 在计算机网络中,数据的流向是指数据从发送端到接收端的传输路径。数据流向涉及…

ensp、HCL环境部署vm版

ensp、HCL环境部署vm版 前言部署环境vmware安装下载镜像创建虚拟机安装ensp、HCL创建快照 问题此平台不支持虚拟化的 AMD-V/rvi。 前言 因为我换了电脑,锐龙版的win11,我按照以前的思路去装软件,发现有很多问题,特别是跳hyper-v弹…

鸿蒙项目云捐助第二十九讲云捐助项目云数据库商品的批量增加功能实现

鸿蒙项目云捐助第二十九讲云捐助项目云数据库商品的批量增加功能实现 关于鸿蒙云捐助项目,前面的内容已使用云函数,云数据库分别实现云捐助项目首页中的项分类导航,底部导航,轮播图功能,这里继续实现云数据库加载捐赠…

【LeetCode: 83. 删除排序链表中的重复元素 + 链表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Spring源码_05_IOC容器启动细节

前面几章,大致讲了Spring的IOC容器的大致过程和原理,以及重要的容器和beanFactory的继承关系,为后续这些细节挖掘提供一点理解基础。掌握总体脉络是必要的,接下来的每一章都是从总体脉络中, 去研究之前没看的一些重要…

2024-12-29-sklearn学习(25)无监督学习-神经网络模型(无监督) 烟笼寒水月笼沙,夜泊秦淮近酒家。

文章目录 sklearn学习(25) 无监督学习-神经网络模型(无监督)25.1 限制波尔兹曼机25.1.1 图形模型和参数化25.1.2 伯努利限制玻尔兹曼机25.1.3 随机最大似然学习 sklearn学习(25) 无监督学习-神经网络模型(无监督) 文章参考网站&a…

BUG分析 - 重启有时失败

1. 倒查版本 1.0_11 - ok1.0_12 - fail 2.对比1.0_11和1.0_12 失败时的日志 ================================== 1.0_11 ============================== 2024-12-26 09:46:51.886 INFO [26332] [ThreadPLCPool::in

git注意事项

提交代码的备注 feat : 开发 新增功能 fix: 修复 git相关 1. git安装及全局用户设置 Git安装 npm install git -ggit修改用户名邮箱密码 git config --global --replace-all user.name "要修改的用户名" git config --global --replace-all user.email"要修改…

LeetCode每日三题(六)数组

一、最大子数组和 自己答案: class Solution {public int maxSubArray(int[] nums) {int begin0;int end0;if(numsnull){//如果数组非空return 0;}else if(nums.length1){//如果数组只有一个元素return nums[0];}//初值选为数组的第一个值int resultnums[0];int i…

一个通用的居于 OAuth2的API集成方案

在现代 web 应用程序中,OAuth 协议是授权和认证的主流选择。为了与多个授权提供商进行无缝对接,我们需要一个易于扩展和维护的 OAuth 解决方案。本文将介绍如何构建一个灵活的、支持多提供商的 OAuth 系统,包括动态 API 调用、路径参数替换、…

小程序配置文件 —— 15 页面配置

页面配置 小程序的页面配置,也称为局部配置,每一个小程序页面也可以使用自己的 .json 文件来对页面的窗口表现进行配置; 需要注意的是:页面配置文件的属性和全局配置文件中的 window 属性几乎一致,只不过这里不需要额…

【从零开始入门unity游戏开发之——C#篇37】进程、线程和C# 中实现多线程有多种方案

文章目录 进程、线程和C#多线程一、进程的基本概念二、线程的基本概念三、C#中的多线程1、为什么需要多线程?2、*C# 中如何实现多线程**2.1 **使用 Thread 类**(1)示例(2)线程休眠(3)设置为后台…

评分模型在路网通勤习惯分析中的应用——提出问题(1)

1、问题的由来、目标和意义 最近一段时间和公司其它业务部门讨论时,发现一个有趣的交通路网问题,车辆从S点行驶到V点共用时40分钟,这段时间内路网中的卡口摄像头识别到了车辆通过的信息。如下图所示: 设计师需要通过这些有限的路…

机器学习DAY7: 特征工程和特征选择(数据预处理)(完)

本文通过特征提取、特征转换、特征选择三个过程介绍数据预处理方法,特征提取将原始数据转换为适合建模的特征,特征转换将数据进行变换以提高算法的准确性,特征选择用来删除无用的特征。 知识点 特征提取特征转换特征选择 本次实验的一些示…

【Unity3D】Jobs、Burst并行计算裁剪Texture3D物体

版本:Unity2019.4.0f1 PackageManager下载Burst插件(1.2.3版本) 利用如下代码,生成一个Texture3D资源,它只能脚本生成,是一个32*32*32的立方体,导出路径记得改下,不然报错。 using UnityEditor; using Uni…