2 回答
TA贡献1783条经验 获得超4个赞
如果我了解得很好,您首先要逐行存储文件,然后搜索“ * Element”的第一个匹配项和“ * Node”的最后一个匹配项,最后存储它们之间的内容。
我看到的一种优化是,您可以将文件的3次解析转换为单个解析:
inputFile = open('C:/Abaqus_JOBS' + JobDir + '/' + JobName + '-3_4.inp', 'r')
go_storage = False
nodes = None
for line in inputFile:
if line[0] == "*Node":
# Reset what has already been memorized
nodes = list()
go_storage = True
elif line[0] == "*Element":
break
elif go_storage:
nodes.append(line)
TA贡献1775条经验 获得超8个赞
也许您可以按照正则表达式来思考:
如果我理解正确,您想在某个文件中的关键词* Node和* Element之间获取数据,对吗?
好吧,您可以尝试类似:
import re
S = open('C:/Abaqus_JOBS' + JobDir + '/' + JobName + '-3_4.inp','r').read()
Data = re.finditer( "\*Nonde([.\n]*?)\*Element", S )
这应该为您提供在标签“ * Node”和“ * Elements”之间找到的字符串列表。
我希望那是您想要做的。
添加回答
举报