【Python】批量提取Fibersim xml文件中的节点网格数据
程序功能:
- 输入需求:
- fibersim导出的ply 的xml文件,可以很多个也没问题。但名字要有规律,不然没法循环读写。比如我自己用的就是x1.xml、x2.xml、Y1.xml......的文件名
- 定义一些需要的变量,看名字都可以知道什么意思
- 输出:
- 程序会输出每个xml文件中每个ply对应的node.csv和mesh.csv
code
import re
# 打开一个txt文本文件,写入所有ply信息
Finfo=open('Plyinfo.txt','w')
# define vars
prefix_1=['x','Y']
prefix_2=range(1,14)
xmlsDir='I:\\3 Group Project\\05 Focus on propeller surface\\20230314\\20230316-xml\\'
# start loop
for q in prefix_1:
for p in prefix_2:
print('now='+q+str(p))
numOfElem=0
numOfNode=0
fibersimXmlPath=xmlsDir+q+str(p)+'.xml'
with open(fibersimXmlPath, 'r',encoding="utf-8") as f1:
flag=0
for i in f1:
if '<Ply' in i:
# split string i
i=i.split('"')
# get the name of Ply
ply_name=i[-2]
node_file_name=ply_name+'_node.csv'
mesh_file_name=ply_name+'_mesh.csv'
# Finfo.write('')
if '<Material' in i:
i=i.split('"')
ply_thickness=i[-2]
# 把ply 铺层的信息都写入为一行,逗号分隔,方便在matlab中使用split和str2num函数转化为可用的检索信息
Finfo.write(ply_name+','+ply_thickness+','+node_file_name+','+mesh_file_name+'\n')
if '<Mesh_Point_Table' in i :
# 检测到节点的起始,打开文件
fn = open(node_file_name, 'w')
fn.write('node_index,X Coordinate,Y Coordinate,Z Coordinate\n')
flag=1
if '</Mesh_Point_Table' in i:
print('!'+q+str(p)+' number of nodes ='+str(numOfNode))
flag=0
numOfNode=0
fn.close()
if '<Mesh_Polygon_Table' in i :
fm = open(mesh_file_name, 'w')
fm.write('element_index,Node 1,Node 2,Node 3,Warp ,Weft\n')
flag=2
if '</Mesh_Polygon_Table' in i:
print('!'+q+str(p)+' number of elements ='+str(numOfElem))
print(numOfElem)
fm.close()
numOfElem=0
flag=0
#进入下一行
# true则表示,现在遍历为节点信息
if '<R/>' in i:
# 说明现在是单元信息
if flag==2:
# elem index
numOfElem=numOfElem+1
temp=i.replace('<R/>','')
mcsvline=temp.replace(' ', ',')
mcsvline=str(numOfElem)+','+mcsvline
fm.write(mcsvline)
elif flag==1 :
# , not in i 说明现在是节点信息
numOfNode=numOfNode+1
temp=i.replace('<R/>','')
csvline=temp.replace(' ', ',')
csvline=str(numOfNode)+','+csvline
fn.write(csvline)
Finfo.close()
【Python】批量提取Fibersim xml文件中的节点网格数据的更多相关文章
- C#程序中:如何修改xml文件中的节点(数据)
要想在web等程序中实现动态的数据内容给新(如网页中的Flash),不会更新xml文件中的节点(数据)是远远不够的,今天在这里说一个简单的xml文件的更新,方法比较基础,很适合初学者看的,保证一看就懂 ...
- C#程序中:如何向xml文件中插入节点(数据)
向xml文件中动态的添加节点(数据)是一件很爽的事,可以给你的程序带来很多的方便,比如在web中,如果你的Flash用到了xml文件,这个方法可以让你在后台就轻轻松松的更新你的Flash内容哦!一起研 ...
- C#程序中:如何删除xml文件中的节点、元素。
C#中动态的清理xml文件中的垃圾信息是程序员必会的哦.这就像数据库一样,不会清理数据怎么可以呢?其实xml文件就可以用作一个小的数据库,存储一些简单的信息.所以,用C#程序实现xml文件的增.删.改 ...
- vue项目中使用bpmn-流程图xml文件中节点属性转json结构
内容概述 本系列“vue项目中使用bpmn-xxxx”分为七篇,均为自己使用过程中用到的实例,手工原创,目前陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项,具 ...
- python读取xml文件中的坐标点
用labelImg工具制作好xml文件后,需要读取其中img路径和坐标点,生成一个label.txt <annotation> <folder>big</folder&g ...
- 【python小练】0017-将xls文件内容写入xml文件中
第 0017 题: 将 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中,如 下所示: <?xml version="1.0" ...
- python解析VOC的xml文件并转成自己需要的txt格式
在进行神经网络训练的时候,自己标注的数据集往往会有数据量不够大以及代表性不强等问题,因此我们会采用开源数据集作为训练,开源数据集往往具有特定的格式,如果我们想将开源数据集为我们所用的话,就需要对其格式 ...
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置 ...
- Python:Dom生成XML文件(写XML)
http://www.ourunix.org/post/327.html 在python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文 ...
- (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql
http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...
随机推荐
- shell 判断是否已安装了某个软件
判断是否安装了node 复制if ! type node >/dev/null 2>&1; then echo 'node 未安装'; else echo 'node 已安装'; ...
- logback高级特性使用(二) 自定义Pattern模板
原文链接:https://blog.csdn.net/chenjie2000/article/details/8892764 创建自定义格式转换符有两步: 1.写一个转换器类,继承ClassicCon ...
- 在C#中如何设置DateTimePicker控件显示“年-月-日 时:分:秒”的格式
在C#中DateTimePicker控件默认显示的日期格式为"年-月-日",并未显示"时:分:秒",如何设置DateTimePicker控件显示"年- ...
- 搞懂现代Web端即时通讯技术一文就够:WebSocket、socket.io、SSE
本文引用自" 豆米博客"的<JS实时通信三把斧>系列文章,有优化和改动. 1.引言 有关Web端即时通讯技术的文章我已整理过很多篇,阅读过的读者可能都很熟悉,早期的We ...
- 记录以下uniapp写小程序然后进行图片上传压缩
今天记录一下uniapp写小程序上传图片压缩的功能 首先定义上传图片的方法 然后res.tempFilePath[0]就是图片的临时路径 其次定义压缩图片然后获取压缩后图片大小的方法,方法使用canv ...
- 使用GTD工作法提升效率
前言 近年来随着工作.副业的开展,每天要做的事情越来越多,而且还积攒了很多工作,每天大脑被各种事情充斥着,乱糟糟的,不仅效率很低,还很容易导致焦虑. 为此我一直有在寻找合适的项目管理工具,也看了一些相 ...
- java解析CSV文件三种方法(openCSV)
一.简介1.pom.xml<!-- csv文件解析依赖 --><dependency> <groupId>com.opencsv</groupId> & ...
- uni-app选中状态并改变颜色
思路 定义一个数组来记录被点击的元素 arr 数组通过indexOf来来查找 如果有,激活类就是true 没有: 激活类为false 这一步最关键的是查找的内容就是显示出来的index, 点击的时候传 ...
- 虚拟化技术 - CPU虚拟化
本文分享自天翼云开发者社区<虚拟化技术 - CPU虚拟化>,作者:谢****悦 物理机器是由CPU,内存和I/O设备等一组资源构成的实体.虚拟机也一样,由虚拟CPU,虚拟内存和虚拟I/O设 ...
- MTV和MVC模式,初识模板
MTV和MVC模式,初识模板1.MTV和MVC模式:分层级进行管理 说到框架模式我们有必要简单的说下设计模式,了解下设计模式这个概念,因为有人对设计模式和框架模式的概念经常混淆 设计模式: 是一套被反 ...