当前位置: 首页 > news >正文

.dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据

前面介绍了基于Python向Abaqus中导入txt、dat数据(基于Python向Abaqus导入txt、dat数据),这里研究如何基于Python从Abaqus导出数据到txt、dat。主要有这么几个函数:

60861c2b49c5f6ce91cdcde2a59a3346.png


01

write命令

使用write命令从abaqus导出数据到txt的代码及其生成的txt如下:

"qiuming.txt",

运行上述代码后,则将相关字符串导入到下面的txt文件中(见图1)。使用该命令后,若上述文件不存在,则系统自动创建。'a'表示可连续写入到文件,保留原内容,在原内容之后写入。可修改该模式为('w+','w','wb'等),而这些模式的解释可参考(基于Python向Abaqus导入txt、dat数据)。

696a3edbf920b297d1c82b72324f3fc8.png

图1 write命令导出字符窜到txt文件里


02

numpy.savetxt命令

这个savetxt函数是基于numpy的,因此需要通过import numpy as np来调用np.save.txt,见图2最上面3行代码,如果不输入import numpy as np,则识别不了np。对于Python而言,需要安装这些numpy安装包才能发挥Python处理矩阵数组的强大优势。但其实在Abaqus里已安装好了这些Python的安装包了,所以可以直接以import numpy as np来执行numpy的相关命令。也可以说,完全可以把Abaqus当成一个Python的一个编译器来执行相关Python代码、调试Python程序,而只需要在Abaqus/CAE的命令行接口(Command Line Interface, CLI)来直接复制输入执行就行了(如插图所示),十分方便。

ad9b381e0f7823bac91de3badbd69c02.png

插图 Abaqus/CAE的命令行接口(就是Python编译器)

import numpy 
  • arange是numpy里的一个函数,上述代码里的x = y = z = np.arange(0.0,6.0,1.0)主要表示生成的一维数组(从0.0开始,每次递增1.0,一直递增5次到5.0,但不包括6.0,总共6个数),也可以说是6X1的矩阵(其中,表示行或行分隔符的意思,总共6行1列),如图2运行所示:

    56d6bb75419f5bba49a891816c11ea45.png

    图2  采用np.savetxt来导出txt文件

  • 第三行的x是变量名,表示需要存储到txt文件的这个数组数据;delimiter=','表示用,作为分隔符。第三行代码的输出内容如图3。

cd319d48cc7056889e66f00cc7762149.png

图3 第三行代码的输出内容

  • 第4行的(x,y,z)表示需要存储到txt文件的数据,输出的结果如图4。注意到,为行分隔符,则x和y和z,三个各成1行。

dfc925f19816d26637db9c7ccc40952e.png

图4 第4行代码的输出内容

  • 第五行的fmt='%1.4f'的解释如图5,简要说明就是输出数据格式,%1.4f表示定制为浮点型数据,制定小数点后的精度为4位,而整数部分为1位。图6可见第5行代码的输出内容。

    7b2cf75a8d7e5eb9e29371c5781d7c91.png

图5  numpy.savetxt中fmt的解释

8a0fa5cb52270cf806faf3bc3d38dd44.png

图6  第5行代码的输出内容


f35463d23c9135876f333abc8356fc65.gif

03

在ABAQUS的Python编译器中赋值整数的问题

在Abaqus里编译Python的时候需要注意一个问题,变量不要直接赋值整数,而且计算过程也不要直接用整数,否则计算出来的结果超乎你的想象!!!

不相信吧,这就举一个例子说服你!Abaqus 2020/CAE的命令行接口(Command Line Interface, CLI)(基于python的Abaqus二维草图绘制),其实可以当做安装好各种包的Python编译器,在其中编译如图7命令:

97f29f412651ca10e828de24ae6d0005.png

图7 在Abaqus的Python编译里直接输入整数进行计算

你会很意外地发现,为什么4/10为0,这是因为4和10两个都是整数,计算出来的结果肯定也会保留整数,原本是0.4的,就只保留0这个整数。但如果你把4写成小数形式4.0,或把10写成小数形式10.0,或者两个都写成带0的小数形式,则计算结果也将是小数。因此,在Python编程过程中,最好将整数写成带0的小数形式,避免出现计算错误。特别是在大型模型或者编程里,一定要特别注意这个问题,否则你都不知道中间到底是怎么出错的!?

dfb9e21457e882a4ab195eba855c7845.gif

但还需要注意的是,ABAQUS 6.13/6.14没有安装sympy和scipy等Python包,因此通过File/Run script无法运行需要导入这些包的Python文件如图8所示。但这里我安装的是ABAQUS 2020,运行这些是没有问题的。

fbbdc185a2faefee0118460d070d761a.png

2adabeb569f64dd1d5768721381ab767.png

图8 通过File/Run script无法运行Python包(在ABAQUS 6.13/6.14)


写在这次结尾的话,学代码最方便的方法、也是最高效的方法就是一句一句代码都仔细打出来运行看看每一句是什么结果,这也是为什么笔者要一句一句运行显示内容来给大家学习的原因。我相信,通过显示每一句的运行内容,透过对内容的分析理解,再结合相应的知识点或者从实操项目中的经验知识点,可以加速大家对于这块内容的掌握和理解。

还是那句话,“纸上得来终觉浅,绝知此事要躬行!!!”

其实代码还是很好玩的,正如打一门游戏,玩的就是心态。一望无际的草原、郁郁葱葱的树林、蔚蓝灵动的大海.......

f477cb0c25968ffa2951f5816096d946.png

相关文章:

  • microbit和python哪个适合_掌控板和microbit哪个好?
  • vue子组件获取父组件数据_微信小程序自定义组件问题二:父(页面)子组件之间的通信...
  • python获取用户输入_python中使用input()函数获取用户输入值方式
  • python数据分析自学教程_【好程序员】Python数据分析全套视频教程
  • ea 通信图_深入浅出聊聊相干光通信(上)看看中长距如何实现400G传输
  • sublime text3 python找不到文件路径_Sublime text 3 集成python 3 环境配置
  • jsp可以使用iframe_使用 JavaScript Object URL,可以处理图像、音频和视频
  • python xlrd_Python xlrd库常用操作汇总
  • python如何调用文件_python中调用不同文件夹的py文件
  • python windows窗口开发_微软上线《在Windows上使用Python进行开发》教程
  • quartz 动态添加job_spring boot Quartz基于持久化存储的动态管理
  • 学python还是php_米凯seo: 到底是学Python、PHP还是Ruby?
  • python命名空间更改_python命名空间
  • vb 查找word中的字符 单元格坐标_Word天,原来查找和替换功能这么强大
  • python网课答案董付国_Python 董付国
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【391天】每日项目总结系列128(2018.03.03)
  • angular组件开发
  • CSS中外联样式表代表的含义
  • EOS是什么
  • github指令
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Vue2.x学习三:事件处理生命周期钩子
  • vue-cli3搭建项目
  • 安卓应用性能调试和优化经验分享
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 对象引论
  • 开发基于以太坊智能合约的DApp
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 微信公众号开发小记——5.python微信红包
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 延迟脚本的方式
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • Python 之网络式编程
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (solr系列:一)使用tomcat部署solr服务
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (转)我也是一只IT小小鸟
  • **PHP分步表单提交思路(分页表单提交)
  • .bat批处理(一):@echo off
  • .bat文件调用java类的main方法
  • .form文件_一篇文章学会文件上传
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET MVC第五章、模型绑定获取表单数据
  • [ Linux ] Linux信号概述 信号的产生
  • [04]Web前端进阶—JS伪数组
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [AIGC 大数据基础]hive浅谈
  • [AIGC] 如何建立和优化你的工作流?
  • [android] 练习PopupWindow实现对话框
  • [BUG] Authentication Error