ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

利用Python修改Abaqus的inp文件(关键字)

2020-12-07 19:03:48  阅读:638  来源: 互联网

标签:文件 Abaqus Python inp Material lines job inpfile


http://blog.sina.com.cn/s/blog_6465f2ed0102x7ae.html

找到一篇关于使用Python语言进行文件操作的文章,操作对象是abaqus软件使用到的inp文件。

旨在推广、分享,同时记录自己的学习历程。如有侵权,立即删除!

Abaqus的关键字可以直接打开inp文件或者在Abaqus的key word里面直接修改,当然除了这个,还可以利用Python语言进行修改,也算是比较有趣的方式。

在文件夹下有一个job-1的inp文件,想通过python对其中部分进行修改,inp文件一共有821行,如图1所示,准备修改其中的*Material, name=Material-1”行为”*Material, name=Material-2”,并且在后面插入一行“**insert lines“。

利用Python修改Abaqus的inp文件(关键字)
图1

实现这个过程通过先读取再赋值后输出的方式完成,主要过程如下:

读取inp文件:

#打开文件夹下的job-1.inp文件,通过open函数,并赋值给变量inpfile。

inpfile=open("E:\CAE_Tech\process_files\AbaqusFiles\job-1.inp")

#利用readlines函数读取inpfile的所有内容。

lines=inpfile. readlines()

#关闭打开的文件,释放资源。

inpfile.close()

#定义俩变量,要替换的内容和替换后的内容。这里特别需要注意,每一行字符串后面需要带换行符\n。

originstr="*Material, name=Material-1\n"

newstr="*Material, name=Material-2\n"

#找到在lines中originstr所在行的index。通过index函数。

strindex=lines.index(originstr)

#将列表lines的该行置换为newstr.

lines[strindex]=newstr

#在该行后面增加一行,即index需要增加1.

lines.insert(strindex+1,"**insert lines\n")

#修改完毕,输出为新的inp文件

newfile=open("E:\CAE_Tech\process_files\AbaqusFiles\job-1-new.inp","w")

#输出lines

for newline in lines:

newfile.write(newline)

#关闭文件

newfile.close()

最终在文件夹下生成一个新的inp文件,名字为job-1-new.inp.如图2所示,注释部分修改过来了。

利用Python修改Abaqus的inp文件(关键字)

图2

inpfile=open("E:\CAE_Tech\process_files\AbaqusFiles\job-1.inp")
lines=inpfile.readlines()
inpfile.close()
originstr="*Material, name=Material-1\n"
newstr="*Material, name=Material-2\n"
strindex=lines.index(originstr)
lines[strindex]=newstr
lines.insert(strindex+1,"**insert lines\n")
newfile=open("E:\CAE_Tech\process_files\AbaqusFiles\job-1-new.inp","w")
for newline in lines:
newfile.write(newline)
newfile.close()

 

标签:文件,Abaqus,Python,inp,Material,lines,job,inpfile
来源: https://blog.csdn.net/join_yuan/article/details/110824828

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有