一直想找一款跨平台的免费又好用的思维导图软件,可是哪有两全其美的事呢,个人感觉安卓版的 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

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

  1. python实现xmind转excel_用 python 实现 xmind 和 mindjet 格式互转

    一直想找一款跨平台的免费又好用的思维导图软件,可是哪有两全其美的事呢,个人感觉安卓版的 mindjet 相对好用一些,windows 和 linux 版的 xmind 相对好用一些,但是 xmind ...

  2. 用python画四叶草代码-python turtle工具绘制四叶草的实例分享

    本篇文章介绍了python使用turtle库绘制四叶草的方法,代码很简单,希望对学习python的朋友有帮助. import turtle import time turtle.setup(650., ...

  3. 用python画四叶草-python turtle工具绘制四叶草的实例分享

    本篇文章介绍了python使用turtle库绘制四叶草的方法,代码很简单,希望对学习python的朋友有帮助. import turtle import time turtle.setup(650., ...

  4. python画蜡烛致敬烈士_「」matplotlib 股票-用python绘制蜡烛线型k线图是用代码还是绘图工具-TOP金融网...

    用python绘制蜡烛线型k线图是用代码还是绘图工具 import matplotlib.pyplot as plt from matplotlib.dates import DateFormatte ...

  5. 所有用户登陆后都在桌面上显示计算机图标,如何在Win10桌面上显示计算机.控制面板.网络.用户的文件图标?...

    如何在Win10桌面上显示"计算机.控制面板.网络.用户的文件"图标? Win10正式版中"计算机/这台电脑"已更名为"此电脑" 默认情况下 ...

  6. 用python画奥迪标志_不知道不 OK!53 个 Python 经典面试题详解

    作者 | Chris 翻译 | 苏本如,责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 本文列出53个Python面试问题,并且提供了 ...

  7. 知道经纬度用python画路线图_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

  8. python画正方形并涂色_这种图片怎么用python画出来,每一个数字代表一种颜色?...

    Python 画正方形,写数字的代码如下: from PIL import Image, ImageDraw, ImageFont, ImageFilter WIDTH = 100 * 4 HEIGH ...

  9. python画雪景_来自程序员的圣诞节浪漫-用Python画一棵带音乐的雪夜圣诞树

    本文我们用 Python 来画一棵带音乐效果的雪夜圣诞树,基本思路如下: 用 Python 画一棵圣诞树作为背景图 在圣诞树背景图中添加雪落效果及音乐 下面来看一下具体实现. 首先,我们来画一棵圣诞树 ...

最新文章

  1. android EditText显示不全
  2. 边缘计算不“边缘”——助攻视频行业这几年
  3. 在SAP CRM呼叫中心的搜索结果点击Edit按钮后的处理逻辑
  4. 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)
  5. 演示unity内存管理机制的缺陷
  6. 【转载】NBU异机恢复oracle
  7. cwRsyncServer 从 windows server 2008 同步到 CentOS
  8. “小而美”走到十字路口,吉利或收购魅族助车机闭环
  9. 基于深度卷积神经网络的图像去噪方法
  10. 树莓派小车简单的迷宫算法-基于Python设计
  11. 浏览器提示“此网站的安全证书有问题“,你还敢继续访问吗?
  12. Ros同一局域网下多机通信
  13. Mybatis中的大于、小于、大于等于、小于等于、不等于的两种写法
  14. HDU-6608-Fansblog(威尔逊定理+快速乘)(多校)
  15. 英语小学口语测试软件,你们的小学英语口语测试怎么搞?
  16. 花开花落又是一度春秋,聚散离别见证一场青春。
  17. React 项目性能分析及优化
  18. (OK) MIMP - 17 ( 5 nodes) - 抓包-缺少 MPTCP-JION - 节点1:服务器 mptcp-kmsg-server.txt
  19. MATLAB R2009a完美安装及下载
  20. 修复计算机u盘,u盘可以修吗,详细教您怎么修复u盘

热门文章

  1. java word替换图片_Java Word中的文本、图片替换功能
  2. 大学生及今后的java之路
  3. 全国高校云计算机应用创新,2017全国高校云计算应用创新大赛
  4. 解决Chrome在隐身模式下无法播放Flash视频
  5. 计算机网络relay系统,什么是中继网络(Relay Network)?
  6. mysql多行多列转一行一列
  7. APP-应用(使用ionic+cordova)创建
  8. Android架构演进 · 设计模式· 为什么建议你一定要学透设计模式?
  9. 兔子生兔子之递归问题(递归实现斐波那契数列)
  10. HLW8112在电力监控系统中的应用