基于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()
素材文件
腳本文件
我是現學現用,有幾個網站很有用,記錄在這里
http://blog.jobbole.com/74844/
各種字符含義
http://www.yiibai.com/python/python_reg_expressions.html
正則表達式最權威教程
http://blog.csdn.net/carolzhang8406/article/details/6335072
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















