用python画四叶草后输入到桌面上的代码-用 python 实现 xmind 和 mindjet 格式互转

一直想找一款跨平台的免费又好用的思维导图软件,可是哪有两全其美的事呢,个人感觉安卓版的 mindjet 相对好用一些,windows 和 linux 版的 xmind 相对好用一些,但是 xmind 和 mindjet 的格式肯定是不兼容的,而探索发现,他们的文档解压之后都是以 xml 方式储存的,压缩也是简单的 zip 压缩,也没有任何加密,于是,故事开始了。

简介

经过大概八小时的开发后,这样一个转换器成功诞生。这是一款用 python3 实现的简单的 xmind 与 mindjet 格式之间的互转工具,只保留树状思维导图以及折叠功能,另外还可以额外可以转化成 txt,用缩进来表示树状图。

后来发现 xmind-zen 保存的文档无法在 xmind8 中打开,所以又添加了 xmind-zen 文档的支持。

项目已放到 github 开源,以便保存和后续随时修改。

实现原理

数据结构

利用 python 的列表嵌套列表来储存思维导图的树状结构,例如

1

2

3

4

5

6

7o

├── a

│ ├── 1

│ ├── 2

│ └── 3

├── b

└── c

以上树状结构在代码中被储存为

1

2

3

4

5["o",

False,

[["a", False, [["1", False, []], ["2", False, []], ["3", False, []]]],

["b", False, []],

["c", False, []]]]

其中 False 表示未被折叠

各个文档格式的存取

xmind 8

xmind 8 保存的格式是 zip 格式,解压后得到若干个文件,树状图数据以 xml 格式保存在 content.xml 里面。

xmind-zen

xmind-zen 保存的格式是 zip 格式,解压后得到若干个文件,树状图数据以 json 格式保存在 content.json 里面。

Mindjet Maps

Mindjet Maps 保存的格式是 zip 格式,解压后得到一个文件 Document.xml,树状图数据以 xml 格式保存在其中。

txt

这是我自己创建的文本文档格式方便调试储存和转换,用缩进的方式表示树状图,用垂直制表符表示是否被折叠

代码风格易扩展,后续随时可以添加更多格式的支持,可以在 Issues 里面提出,有时间我会补充。

用法

命令格式

1mmconv.py 源文件 [目标文件] [-t 格式]

参数详解

1

2

3

4

5

6

7

8

9

10

11

12

13位置参数:

源文件 表示要转换的文件。

目标文件 目标文件名。转换成功的保存的文件路径。

如果未指定目标文件,则直接打印源文件类型。

可选参数:

-h, --help 显示此帮助消息并退出

--type {txt,mmap,xmind,zen}, -t {txt,mmap,xmind,zen}

指定目标文件的类型。目前支持以下类型:

xmind - XMind 8 文档

zen - XMind zen 文档

txt - txt 文本文档

mmap - Mindjet maps 文档

若未指定 --type 类型参数,则默认为 txt。

源文件的格式不用指定,会自己识别,详见 --help

用法示例

1

2

3

4

5

6

7

8

9

10

11#将 a.xmind 转换成 txt 格式

mmconv.py a.xmind a.txt

#将 a.xmind 转换成 mmap 格式

mmconv.py -t mmap a.xmind a.mmap

#将 a.txt 转换成 xmind 格式

mmconv.py -t xmind a.txt a.xmind

#将 a.xmind 转换成 xmind-zen 格式

mmconv.py -t zen a.xmind b.xmind

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值