2 回答

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個贊
如果我了解得很好,您首先要逐行存儲文件,然后搜索“ * Element”的第一個匹配項(xiàng)和“ * Node”的最后一個匹配項(xiàng),最后存儲它們之間的內(nèi)容。
我看到的一種優(yōu)化是,您可以將文件的3次解析轉(zhuǎn)換為單個解析:
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貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊
也許您可以按照正則表達(dá)式來思考:
如果我理解正確,您想在某個文件中的關(guān)鍵詞* Node和* Element之間獲取數(shù)據(jù),對嗎?
好吧,您可以嘗試類似:
import re
S = open('C:/Abaqus_JOBS' + JobDir + '/' + JobName + '-3_4.inp','r').read()
Data = re.finditer( "\*Nonde([.\n]*?)\*Element", S )
這應(yīng)該為您提供在標(biāo)簽“ * Node”和“ * Elements”之間找到的字符串列表。
我希望那是您想要做的。
添加回答
舉報