问题描述
将.inp
模型导入Abaqus CAE时遇到一些问题。我从原始输入文件开始定义了这个新的输入文件,然后通过可以正常工作并产生我需要的新.inp
的Python循环来更改某些参数的值。
事实是,当我尝试将新的输入文件导入CAE时,它不起作用,并出现错误NoKeywordsDefinedError。有趣的事实是,如果我将新.inp
文件的内容复制并粘贴到旧文件中,然后导入该模型,那么它就可以正常工作。
我通过以下方式定义了新的.inp
:
inputFile=open('Job-1.inp','r')
outputFile=open('ModifiedInput'+'_RUN'+str(run)+'_LEVEL'+str(r)+'.inp','w')
number_of_lines = 0
for line in inputFile:
line = line.strip("\n")
number_of_lines += 1
if number_of_lines == XXX:
line = line.replace('old','new')
outputFile.write(line)
解决方法
您可以做一些改善脚本的事情:
- 除非打算重新添加换行符,否则不要删除新的换行符。当您剥离它,然后在不使用换行符的情况下写回文本时,所有输出将最终显示在一行上。
- 我假设您还想写出不需修改的行,因此将
outputFile.write
语句移至number_of_lines
检查之外。 - 在脚本末尾关闭文件,以确保写入的内容被清空。
inputFile=open('Job-1.inp','r')
outputFile=open('ModifiedInput'+'_RUN'+str(run)+'_LEVEL'+str(r)+'.inp','w')
number_of_lines = 0
for line in inputFile:
#line = line.strip("\n")
number_of_lines += 1
if number_of_lines == XXX:
line = line.replace('old','new')
outputFile.write(line)
inputFile.close()
outputFile.close()