这次推送聚焦于解决采用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采用英文版,没有汉化所致):
2. readline()函数
readline()函数只读取txt、dat文本第一行的内容,并以字符串的形式返回结果,其代码如下所示
with open(“xyplot.dat”, “r”) as f: # 打开文件data = f.readline() # 读取文件print(data)
将该命令在Abaqus/CAE的命令行接口(Command Line Interface, CLI)运行上述代码后的显示结果为图2,很明显只读进去了第一行的内容。
图3 readlines()读入txt、dat文件到Abaqus
读写txt文件时需要选择r、w、rb、wb等的模式,其释义如图4所示:
图5 coordinates.txt的内容
图7 Abaqus里调用coordinates.txt的内容
说明:
- 以上Python命令流既可以在Abaqus的命令行接口(Command Line Interface, CLI)直接运行,也可以通过在Abaqus/CAE的File菜单下,选择Run Script…运行以上命令流保存的py脚本,两种运行方式的运行结果完全相同。