python:lxml etree 生成思维导图 Freemind(.mm)文件

使用python将freemind转化成excel 一、项目背景 该工具提供将freemind文件,转换成测试案例excel文件。 期望将思维导图中最后一列,设置为期望结果,而除最后一列外前面路径以“_”间隔为测试名称。 备注:若为xmind,则可先将xmind文件导出为freemind的mm格式文件。 二、实现效果如下 有freemind文件(思维导图.mm): 生成的文件: 三、使用说明 命令行中执行python文件: 方式一(使用自行定义的输入(-i)&输出(-o)文件名(也可定义为其他excel... 阅读详情

请参阅:从PDF中提取目录 或者 java : pdfbox 读取 PDF文件内书签

请注意:书的目录.txt 编码:UTF-8,推荐用 Notepad++ 转换编码。

pip install lxml ; 

lxml-5.1.0-cp310-cp310-win_amd64.whl (3.9 MB)

读目录.txt文件,使用 lxml 生成思维导图 Freemind(.mm)文件

编写 txt_etree_mm.py 如下

# -*- coding: utf-8 -*-
""" 读目录.txt文件,使用 lxml 生成思维导图 Freemind(.mm)文件"""
import os
import sys
import codecs
from lxml import etree

if len(sys.argv) ==2:
    f1 = sys.argv[1]
else:
    print('usage: txt_etree_mm.py  file1.txt')
    sys.exit(1)

if not os.path.exists(f1):
    print(f"ERROR: {f1} not found.")
    sys.exit(1)

fn,ext = os.path.splitext(f1)
if ext.lower() != '.txt':
    print('ext is not .txt')
    sys.exit(2)

# 创建根节点
map = etree.Element("map")
map.set('version', '1.0.1')

fp = codecs.open(f1, mode="r", encoding="utf-8")
# 读取第一行:书名
title = fp.readline()
# 创建主题节点
root = etree.Element("node")
root.set('ID', '1')
root.set('STYLE', 'bubble') # 泡框
root.set('TEXT', title.strip())
map.append(root)

# 定义连线的颜色:红色
edge = etree.Element("edge")
edge.set('COLOR', "#ff0000")
root.append(edge)
# 用缩排表现层级关系,假设最多5个层级
indent1 = ' '*2
indent2 = ' '*4
indent3 = ' '*6
indent4 = ' '*8

n = 2  
for line in fp:
    txt = line.strip()
    if len(txt) ==0:
        continue
    txt = txt[0:-3] # 去掉行尾的页数
    if len(txt) >0 and line[0] !=' ':
        # 创建主题的子节点(1级节点)
        node1 = etree.Element("node")
        node1.set('ID', str(n))
        node1.set('POSITION', "right")
        node1.set('TEXT', txt)
        root.append(node1)
        p_node = node1 # 寄存父节点
    elif line.startswith(indent1) and line[2] !=' ':
        # 创建node1的子节点(2级节点)
        node2 = etree.Element("node")
        node2.set('ID', str(n))
        node2.set('TEXT', txt)
        try: type(node1)
        except NameError: root.append(node2)
        else: node1.append(node2)
        p_node = node2
    elif line.startswith(indent2) and line[4] !=' ':
        # 创建node2的子节点(3级节点)
        node3 = etree.Element("node")
        node3.set('FLODED', "true") 
        node3.set('ID', str(n))
        node3.set('TEXT', txt)
        try: type(node2)
        except NameError: node1.append(node3)
        else: node2.append(node3)
        p_node = node3
    elif line.startswith(indent3) and line[6] !=' ':
        # 创建node3的子节点(4级节点)
        node4 = etree.Element("node")
        node4.set('ID', str(n))
        node4.set('TEXT', txt)
        try: type(node3) 
        except NameError: node2.append(node4)
        else: node3.append(node4)
        p_node = node4
    elif line.startswith(indent4) and line[8] !=' ':
        # 创建node4的子节点(5级节点)
        node5 = etree.Element("node")
        node5.set('ID', str(n))
        node5.set('TEXT', txt)
        try: type(node4) 
        except NameError: p_node.append(node5)
        else: node4.append(node5)
    else:
        print(txt)
    n += 1
fp.close()

# 转换成 str,方便导出
map_bytes = etree.tostring(map, pretty_print=True)

# 导出到 .mm 格式的文件中
f2 = fn +'.mm'
with open(f2, 'w+b') as fp:
    fp.write(map_bytes)

print(f"line number: {n}")

运行 python txt_etree_mm.py your_pdf_dir.txt

生成 your_pdf_dir.mm

python如何绘制思维导图 在这个示例中,我们创建了一个有向图G,并添加了三个节点(“主题”、“子主题1”、“子主题2”)和两条边(从"主题"到"子主题1",从"主题"到"子主题2")。然后,我们使用spring_layout()方法设置节点的位置,并使用draw()函数绘制图形。执行上述代码后,将显示一个窗口,其中包含绘制好的思维导图。节点之间的关系以箭头表示,节点的标签显示在图形中。请注意,networkx库提供了丰富的功能和选项,您可以通过查阅其文档来了解更多关于绘制思维导图的方法和设置。 阅读详情

相关推荐

python的Graphviz库生成思维导图

在上面的示例代码中,我们将format属性设置为’png’,然后使用draw方法将思维导图保存为PNG格式的图片文件。同时,我们使用filename属性指定文件名为’basic-mindmap’,使用directory属性指定保存到当前工作目录中,使用cleanup属性设置为True,以便在渲染结束后自动删除生成的中间文件。最后,我们使用draw方法渲染思维导图,并将其保存为PNG格式的图片文件。除了PNG格式外,您还可以将format属性设置为其他格式,如PDF、SVG等,以保存生成的思维导图。

zhangzhechun的专栏 3915

python思维导图xmind高清_python解析FreeMind和XMind思维导图

importzipfileimportosimportioimportsysimporthashlibimportxml.etree.ElementTree as ETclassAnalyseMindMap:def __init__(self, file_path, mark):self.file_path=file_pathself.context= ""if mark == "":self.m...

weixin_39691748的博客 531

基于Python的轻量级Web框架freemind-python实战解析

在现代软件开发中,Web框架作为连接前端与后端的桥梁,承担着处理HTTP请求、管理业务逻辑和返回响应的核心职责。Python凭借其简洁语法与强大的生态系统,成为构建Web应用的主流语言之一。本章将从Python Web开发的基本原理出发,阐述WSGI协议的作用机制、HTTP请求/响应模型的基本结构,并介绍轻量级Web框架的设计哲学。通过理解CGI到现代微框架的演进路径,读者将建立起对freemind-python这一自研框架所处技术背景的宏观认知。

weixin_42518334的博客 654

创建一个简单的思维导图生成器

思维导图是一种图形化的思维工具,能够帮助人们更好地组织和理解信息。它通常包括一个中心主题,分支出去多个子主题,再进一步分解成更小的分支。在这篇博文中,我们将使用Python创建一个简易的思维导图生成器。数据结构设计,用于存储思维导图的信息。图形化显示思维导图。简单的用户界面,允许用户输入和编辑思维导图信息。在这篇博文中,我们详细介绍了如何使用Python创建一个简单的思维导图生成器。我们使用了networkx和matplotlib库来绘制思维导图,并使用tkinter创建了一个简单的图形用户界面。

weixin_71228606的博客 2894

mindmap.py:基于Python的freemind心智图文件解析器

freemind_parser Freemind心智图文件.mm的Python解析器 介绍 我是思维导图的沉迷者。 我每天都使用它进行项目管理和记录。 我在思维导图上应用了GTD(让事情完成)的概念。 Freemind是一个完美的工具,自2003年以来我就一直在使用它。它具有更简单,更好的GUI,定义明确的键盘快捷键,跨平台。 而且是免费的。 缺点之一是它是用Java编写的,并且消耗大量内存,这在200倍内存中至关重要。 现在这似乎对我来说不是问题。 我需要抱怨它的同级Freeplane,与Freemind相比,它在2009年取得了很大进步。 然而,它的新版本正从“越简单越好”中逐渐偏离。 所以五年后我又回到了Freemind。 我用Freemind写了我的简历,主要是内容。 Mindmap对于这种层次结构文本非常有用,并且还可以使用TODO / DONE标记来跟踪您的进度。 我使用

微信小程序转化数据API自归因实战:PHP实现与2025升级要点解析

本文详细解析了2025年微信小程序转化数据API自归因的升级要点与PHP实战实现。核心变化包括接口地址更新、固定access_token的获取方式,以及新增timestamp与nonce等安全参数。文章提供了完整的PHP代码示例,帮助开发者高效完成数据上报,优化腾讯广告投放效果。

git9versioner的博客 989

利用python将freemind文件转为Excel

freemind生成的文件扩展名为.mm,实际就是一个标准的xml文档,因此我们可以利用python的xml库,来将这个xml文档层层解析,并写入Excel文件中。

anfs2020的博客 3019

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1384

xmind格式与FreePlane(.mm格式)互相转(两个方法)

xmind格式与FreePlane(.mm格式)互相转(两个方法) 这里展示从xmind格式到FreePlane(.mm格式)的,反过来是一样的。

weixin_55036310的博客 4272

智能体异常行为检测-基于行为序列的异常模式识别技术【附代码】

在多智能体系统(Multi-Agent Systems, MAS)中,智能体之间的行为协调与自主决策是系统稳定运行的关键。然而,当某个智能体因策略偏移、环境变化或潜在攻击而出现**异常行为(Abnormal Behavior)**时,整个系统可能陷入混乱或崩溃。

一键难忘的博客 1146

串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE

一文搞定,赶紧收藏吧

记得诚 3万+

Python思维导图

12 张 Python 思维导图,全面掌握 Python 基础 1. 按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文件对象,错误&异常,函数,模块,面向对象编程; 2. 结合这些思维导图主要参考的资料,分享一下我的学习体验,一方面可供初学者参考,另一方面,也便于大家结合思维导图深入学习、理解、思考; 12张思维导图 1. 总览 2. 基础知识图一包括了基本规则、Python语言特点、计算机语言、如何运行Python、变量赋值五个方面,

CherryBlossom_的博客 6441

YOLO26涨点改进 | 全网独家创新、检测头Head改进篇 | AAAI 2026 | 使用StripConvHead改进YOLO26的检测头,处理小目标、遮挡小目标检测有效涨点,助力高效发论文

🔥本文给大家介绍使用StripConv条形卷积改进 YOLO26的检测头,可以显著提高模型在高纵横比物体检测、目标定位和多尺度物体检测方面的表现。StripConv条形卷积能够更有效地捕捉细长物体的特征,提升定位精度,并通过简化卷积核设计减少计算冗余,优化计算效率。此外,该改进增强了 YOLO26对复杂场景和实时任务的适应能力,特别适用于遥感图像目标检测、小目标检测等领域。具体怎么使用请看全文。摘要:随着遥感物体检测的快速发展,检测高纵横比物体仍然是一个挑战性问题。

Ai缝合怪、助力小伙伴高效发论文 269

python思维导图xmind高清_XMind思维导图创建、解析、更新的一站式解决方案(Python)...

XMind思维导图进行创建、解析、更新的一站式解决方案!一、安装方式 pip3 install XMindorpip3 install xmind二、版本升级 pip3 install -U XMind三、使用方式1、创建XMind文件 def gen_my_xmind_file():# 1、如果指定的XMind文件存在,则加载,否则创建一个新的workbook = xmind.load("my....

weixin_39598308的博客 907

uniapp - 最新微信小程序手机号一键登录功能效果,uniapp小程序实现手机号码一键登录,uniapp微信小程序端通过手机号授权完成立即登录操作(详细示例源码,新手小白一键复制开箱即用)

uniapp,微信小程序,uniapp小程序平台,uniApp手机号一键登录,uniapp小程序端手机号一键登录功能,实现微信小程序手机号一键登录,在uniapp中实现获取手机一键登录功能,uniapp手机号快捷登录,uniapp微信小程序授权登录并获取手机号,微信小程序手机号快速验证组件调用方式,uniapp小程序怎么用手机号一键登录,uniapp一键登录流程及代码,如何获取手机号一键登录到小程序,微信小程序获取本机手机号一键登录功能,新手详细教程,详细手机一键登录完整示例代码,uni-app微信unia

✅ 精选推荐文章 1万+

实战:RK3568 Android14 调试 MIPI DSI 液晶屏

LCD1_RST -> 对应原理图网络连接到 GPIO。LCD1_PWR_EN ->用于给屏幕 VCC 供电。LCD0_BL_EN / LCD0_BL_PWM -> MP3302 升压芯片驱动 LED 灯条。![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/100f2be7f763494da1032464e272e63b.png&pinctrl {/* 配置 LCD_RST 和 LCD_EN */

qq_33427070的博客 1549

python:xml.etree 生成思维导图 Freemind文件

python 读目录.txt文件,用 xml.etree.ElementTree 生成思维导图 Freemind(.mm)文件

belldeep的专栏 1490

LoveSQL

LoveSQL(SQL注入详解) 1、根据题目,显然想到的是sql注入漏洞,直接尝试万能密码 2、此时url构造,查看字段数 /check.php?username=admin' order by 3%23&password=1 # 存在 /check.php?username=admin' order by 4%23&password=1 # 报错 因此,得到总共有三个字段数 注意:url中不能用#,应该用url编码%23 3、用union来查询测试注入点,查看回显点

lunan的博客 1562

python解析FreeMind思维导图

记录瞬间 在实际工作中,通常需要使用思维导图进行一些分析和设计,但是,在设计好之后,想要把思维导图的内容转化成文字进行输出怎么做呢? 使用python(当然可以使用其他的语言进行处理)可以很好的解决这个问题。 代码如下: # coding:utf-8 import os from html.parser import HTMLParser def ana...

weixin_30276935的博客 711

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

PYTHON零基础学习思维导图(持续更新)

python零基础学习_思维导图

cmu_stu_baicong的博客 887

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Python统计FreeMind测试用例数量

如题

路飞 401

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python 生成思维导图:用 Mermaid+Pymdownx 自动绘图

提示:在支持 Mermaid 的 Markdown 查看器(如 VS Code 预览模式)中可直接查看渲染结果,无需转换为 HTML。:结合数据库/API 实时生成导图。

2501_93895906的博客 713

免费开源的思维导图软件FreeMind

FreeMind是一款功能强大且免费的开源思维导图软件。

y1783363596的博客 1966

Python入门题030:生成思维导图

题目: 使用 lxml 生成 Freemind(.mm)格式的思维导图 视频教程: Python入门题030:生成思维导图 代码1: from lxml import etree # 创建根节点 map = etree.Element("map") map.set('version', '1.0.1') # 创建主题节点 root: etree.ElementBase = etree

panyanyany(飞雨幻沙) 1060

python3 xmind python3画思维导图

1、下载安装 https://github.com/18813055625/xmind-sdk-python3 git clone https://github.com/jmoraleda/xmind-sdk-python3.git python setup.py install 2、基本代码介绍 import xmind #加载包 w = xmind.load("test...

pan15125284的博客 7880

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 422
上一篇: 谈谈数字的轮回
下一篇: node.js 使用 elementtree 生成思维导图 Freemind 文件
belldeep
博客等级 码龄20年 1821粉丝 584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值