基于python 提取整個模型 節點力最大最小值的腳本(abaqus)

以前用fortran寫小程序進行后處理的腳本處理(abaqus),近期嘗試用python寫了個讀取文件/判斷最值/寫出文件的一個腳本



也許對一些朋友有借鑒作用



import re


Data = []



f = open('data.txt')

line = f.readline()

Num_time=0

Num_nd=0

Num_line=1

Num=0

time=[]

column=1

while line:

    searchObj= re.search( r'n o d a l   f o r c e   g r o u p    o u t p u t  t=', line)

    searchObj2= re.search( r'nd#', line)

    if searchObj:

       Data.append([])

       Num_time+=1

       Num_nd=0

       s=line

       parts= (re.split( '\s*=\s*' ,s ))

       TT=float(parts[1])

       time.append(TT)

       Data[Num_time-1].append([])

       Data[Num_time-1].append([])

       Data[Num_time-1].append([])


    if searchObj2:

       Num_nd+=1

#       print (Num_nd)

       s=line

       parts= (re.split( '\s*' ,s ))

       Num_node=int(parts[2])

       X_force=float(parts[4])

       Y_force=float(parts[6])

       Data[Num_time-1][0].append(Num_node)

       Data[Num_time-1][1].append(X_force)

       Data[Num_time-1][2].append(Y_force)


    line = f.readline()

    Num_line+=1

f.close()


#print(Data[0][1])

#print(Data[1][1])

X_force_max=[]

X_force_min=[]

Y_force_max=[]

Y_force_min=[]

for i in range(0,Num_time):

     X_force_max.append(max(Data[i][1]))

     X_force_min.append(min(Data[i][1]))

     Y_force_max.append(max(Data[i][2]))

     Y_force_min.append(min(Data[i][2]))


Output=[]

Output.append('%-12s%-12s%-12s%-12s%-12s \n'%('Time','X_force_max','X_force_min','Y_force_max','Y_force_min' ))

for i in range(0,Num_time):

    Output.append('%-12.3e%-12.3e%-12.3e%-12.3e%-12.3e \n'%(time[i],X_force_max[i],X_force_min[i],Y_force_max[i],Y_force_min[i]))



f=open('f.txt','w')

f.truncate()

f.writelines(Output);

f.close()



素材文件

基于python 提取整個模型 節點力最大最小值的腳本(abaqus)的圖1data.txt


腳本文件

基于python 提取整個模型 節點力最大最小值的腳本(abaqus)的圖2abaqus script.txt




我是現學現用,有幾個網站很有用,記錄在這里


http://blog.jobbole.com/74844/


各種字符含義

http://www.yiibai.com/python/python_reg_expressions.html


正則表達式最權威教程

http://blog.csdn.net/carolzhang8406/article/details/6335072


登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

8
3