IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 基于Python向Abaqus导入txt、dat数据(附abaqus中python二次开发课程) -> 正文阅读

[Python知识库]基于Python向Abaqus导入txt、dat数据(附abaqus中python二次开发课程)

这次推送聚焦于解决采用Python向Abaqus里导入txt、dat数据的问题(dat文件只需要将txt文件的后缀名改为dat就可以生成dat文件),Abaqus基于Python读入txt、dat数据主要有read()、readlines()、readlines()、numpy.loadtxt()函数,导入的txt文件放在工作目录temp中。

1. read() 函数

可以一次性读取txt文件中的内容,并以字符串的结果返回来,如下列代码所示:

with?open("xyplot.dat",?"r")?as?f:????#打开文件
????data?=?f.read()???#读取文件
????print(data)

其中,

  • r是读取人工书写的数据,书写的时候是什么样子,读出来就是什么样。

  • rb是读取二进制文件,非人工书写的数据,如.jpeg等这些。

将该命令在Abaqus/CAE的命令行接口(Command Line Interface, CLI)运行后,结果如图1所示(图中#注释后的乱码为作者安装abaqus采用英文版,没有汉化所致):

图1 read()读取txt、dat数据到Abaqus

需要注意的是,以上data数据类型都是为字符,如下图所示。调用data[0]为字符,因此data[0][0]也为字符,以及后续的data[20][0],data[60][0]等也都为字符。

2. readline()函数

readline()函数只读取txt、dat文本第一行的内容,并以字符串的形式返回结果,其代码如下所示

with?open("xyplot.dat",?"r")?as?f: ? ? ?# 打开文件
????data?=?f.readline() ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 读取文件
????print(data)

将该命令在Abaqus/CAE的命令行接口(Command Line Interface, CLI)运行上述代码后的显示结果为图2,很明显只读进去了第一行的内容。

图2 readline()读入txt、dat文件到Abaqus

3. readlines()

readlines函数能读取txt、dat文本的所有内容,以数列的格式返回结果,并且配合for in使用,其代码如下所示:

with?open("xyplot.dat",?"r")?as?f:
????for?line?in?f.readlines():
????????line?=?line.strip('\n')??#去掉列表中每一个元素的换行符
????????print(line)

将该命令在Abaqus/CAE的命令行接口(Command Line Interface, CLI)运行上述代码后的显示结果为图3。读取data[0]、data[1]、data[1][1]、data[1][0]、data[1][2]、data[1][4]、data[1][0:4]的结果见图3,大家可以看到其中的规律,特别是上述读取的都是字符,如果想要得到数据类型,特别是有利于后面的循环读取,需要将字符类型转化为数据类型,这里采用float(data[1][0])将字符转化为数据类型。

图3 readlines()读入txt、dat文件到Abaqus

读写txt文件时需要选择r、w、rb、wb等的模式,其释义如图4所示:

图4 Python读写txt、dat数据到Abaqus的模式解释

4.numpy.loadtxt()

Abaqus里已经自带安装了numpy,无需要像python需要额外安装numpy。

import?numpy?as?np
b=np.loadtxt('coordinates.txt',delimiter?=?',',dtype=np.float32)
print(b)

  • 第一行代码主要为将numpy简化等效为np,为了后续方便,比如np.loadtxt可直接等效为numpy.loadtxt,但长度是一样的。

  • 第二行代码读入coordinates.txt(图5),delimiter指定读取文件中数据的分割符,在这里为逗号,;而后面dtype为指定读取后数据的数据类型为float32类型。需获取该txt文件,可在公众号里回复:coordinates.txt

  • 第三行代码在Abaqus里显示b的内容如图6所示,导入进去的b为一个array,其中忽略了逗号。在Abaqus里进行调用b的结果如图7所示。注意到,b[0]为array中的第一行,b[1]为array中的第二行,b[0][0]为array中的第一行中的第一个元素,b[0][1]为array中的第一行中的第2个元素,b[1][0]为array中的第2行中的第一个元素,b[1][1]为array中的第2行中的第2个元素

图5 coordinates.txt的内容

图6?Abaqus显示读取coordinates.txt的内容

图7?Abaqus里调用coordinates.txt的内容

说明:
  • 以上Python命令流既可以在Abaqus的命令行接口(Command Line Interface, CLI)直接运行,也可以通过在Abaqus/CAE的File菜单下,选择Run Script...运行以上命令流保存的py脚本,两种运行方式的运行结果完全相同。

以上即为本次推文的主要内容,如果想更深入的了解Python在abaqus中的应用,欢迎学习以下课程。

ABAQUS Python二次开发工程实例教程https://www.jishulink.com/college/video/c16214

最后,有abaqus二次开发相关需求,欢迎通过微信公众号联系我们。

微信公众号.jpg

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 23:25:56  更:2021-07-29 23:26:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:35:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计