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 MarkItDownmd = 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/JettyNginx/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 MarkItDownmd = 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 OpenAIclient = 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 启动闪退问题解决集(八大类详细)

逆境清醒

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字工厂管理系统就是ERP系统吗

在制造业数字化转型的进程中,数字工厂管理系统与ERP系统常常被提及,不少人疑惑这两者是否为同一概念。事实上,它们虽有联系,却存在诸多显著差异。 ERP系统,即企业资源计划系统,其核心在于对企业全方位资源的…

【Linux】Linux开发利器:make与Makefile自动化构建详解

Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器 在现代软件开发中,自动化构建工具显得尤为重要,make和Makefile是Linux环境下的常用选择。它们通过定义规则和依赖关系&#…

【MinIO系列】MinIO Client (mc) 完全指南

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

在跨平台开发环境中构建高效的C++项目:从基础到最佳实践20241225

在跨平台开发环境中构建高效的C项目:从基础到最佳实践 引言 在现代软件开发中,跨平台兼容性和高效开发流程是每个工程师追求的目标。尤其是对于 C 开发者,管理代码的跨平台构建以及调试流程可能成为一项棘手的挑战。在本文中,我…

2. SQL窗口函数使用

背景 窗口函数也叫分析函数,主要用于处理相对复杂的报表统计分析场景,这个功能在大多商业数据库和部分开源数据库中已经支持,mysql从8.0开始支持窗口函数。经典使用场景是数据错位相减的场景,比如求查询每年支付时间间隔最长的用…

Qt creator ,语言家功能缺失解决方法

1、找到工具->外部->配置 2、添加目录,双击命名语言家 3、在语言家目录下,添加工具 双击重命名lupdate,即更新翻译 %{CurrentDocument:Project:QT_INSTALL_BINS}\lupdate%{CurrentDocument:Project:FilePath}%{CurrentDocument:Projec…

软件测试之全链路压测详解

随着业务的快速发展我们日常遇到的系统性能压力问题也逐渐出现,甚至在部分场合会遇到一些突发的营销活动,会导致系统性能突然暴涨,可能导致我们系统的瘫痪。最近几年随着电商的各种促销活动,有一个词也渐渐进入我们眼帘&#xff0…

基于推理的目标检测 DetGPT

基于推理的目标检测 DetGPT flyfish detgpt.github.io 近年来,由于大型语言模型(LLMs)的发展,计算机视觉领域取得了重大进展。这些模型使人类与机器之间能够进行更有效、更复杂的交互,为模糊人类与机器智能界限的新技…

优化 invite_codes 表的 SQL 创建语句

-- auto-generated definition create table invite_codes (id int auto_incrementprimary key,invite_code varchar(6) not null comment 邀请码,6位整数,确保在有效期内…

如何在 Ubuntu 22.04 上安装以及使用 MongoDB

简介 MongoDB 因其灵活性、可扩展性、性能和生态系统而受到开发人员的青睐,这些都是构建和驱动现代应用程序的关键能力。通过几个配置步骤,你就可以在你的 Ubuntu 22.04 LTS 机器上安装 MongoDB,这是 Ubuntu Linux 发行版的最新长期支持版本…

小程序app封装公用顶部筛选区uv-drop-down

参考ui:DropDown 下拉筛选 | 我的资料管理-uv-ui 是全面兼容vue32、nvue、app、h5、小程序等多端的uni-app生态框架 样式示例&#xff1a; 封装公用文件代码 dropDownTemplete <template><!-- 顶部下拉筛选区封装公用组件 --><view><uv-drop-down ref&…

vulnhub靶场-matrix-breakout-2-morpheus攻略(截止至获取shell)

扫描出ip为192.168.121.161 访问该ip&#xff0c;发现只是一个静态页面什么也没有 使用dir dirsearch 御剑都只能扫描到/robots.txt /server-status 两个页面&#xff0c;前者提示我们什么也没有&#xff0c;后面两个没有权限访问 扫描端口&#xff0c;存在81端口 访问&#x…

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型&#xff08;MLLMs&#xff09;的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文&#xff1a;Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…

C++之红黑树模拟实现

目录 红黑树的概念 红黑树的性质 红黑树的查找效率 红黑树的实现 红黑树的定义 红黑树节点的插入 红黑树的平衡调整 判断红黑树是否平衡 红黑树整体代码 测试代码 上期我们学习了AVL树的模拟实现&#xff0c;在此基础上&#xff0c;我们本期将学习另一个数据结构-…

SDMTSP:粒子群优化算法PSO求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、单仓库多旅行商问题 单仓库多旅行商问题&#xff08;Single-Depot Multiple Travelling Salesman Problem, SD-MTSP&#xff09;&#xff1a;&#x1d45a;个推销员从同一座中心城市出发&#xff0c;访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次&#x…

【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?

文章目录 前言问题描述问题分析问题解决1.允许所有用户上传驱动文件2.如果是想只上传白名单的驱动 前言 该方法适合永洪BI系列产品&#xff0c;包括不限于vividime desktop&#xff0c;vividime z-suit&#xff0c;vividime x-suit产品。 问题描述 当我们连接数据源的时候&a…

决策树(理论知识3)

目录 评选算法信息增益&#xff08; ID3 算法选用的评估标准&#xff09;信息增益率&#xff08; C4.5 算法选用的评估标准&#xff09;基尼系数&#xff08; CART 算法选用的评估标准&#xff09;基尼增益基尼增益率 评选算法 决策树学习的关键在于&#xff1a;如何选择最优划…

Echarts连接数据库,实时绘制图表详解

文章目录 Echarts连接数据库&#xff0c;实时绘制图表详解一、引言二、步骤一&#xff1a;环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二&#xff1a;数据获取与处理1、查询数据库2、数据处理 四、步骤三&#xff1a;ECharts图表配置与渲染1、配置ECharts选项2、动…

Odoo 免费开源 ERP:通过 JavaScript 创建对话框窗口的技术实践分享

作者 | 老杨 出品 | 上海开源智造软件有限公司&#xff08;OSCG&#xff09; 概述 在本文中&#xff0c;我们将深入研讨如何于 Odoo 18 中构建 JavaScript&#xff08;JS&#xff09;对话框或弹出窗口。对话框乃是展现重要讯息、确认用户操作以及警示用户留意警告或错误的行…

flask-admin的modelview 实现list列表视图中扩展修改状态按钮

背景&#xff1a; 在flask-admin的模型视图&#xff08;modelview 及其子类&#xff09;中如果不想重构UI视图&#xff0c;那么就不可避免的出现默认视图无法很好满足需求的情况&#xff0c;如默认视图中只有“新增”&#xff0c;“编辑”&#xff0c;“选中的”三个按钮。 材…