重命名有限元文件,提取关键词所在行,然后转数字格式

 

重命名有限元文件,提取关键词所在行

import shutil
import csv

oldname = 'static_linear.bdf'
keywords = ['GRID', 'CQUAD4','SPC,','FORCE,']

newname=oldname[0:len(oldname)-4]+'.csv'
filename=oldname[0:len(oldname)-4]+'_GRID'+'.csv'

shutil.copy(oldname,newname)

with open(newname,'r') as f:
  lines = f.readlines()
  for keyword in keywords:
    i = 0
    for line in lines:
        i += 1
        if keyword in line:
            print(line, end="")  # 本身已经有个换行符
            with open(filename,'a') as f_n:
                f_n.write(line)
               


               


            
      

 

然后转数字格式

 

import csv

filename='static_linear_GRID.csv'
f_n_g='s_l_g.csv'

csv_reader = csv.reader(open(filename, encoding='utf-8'))
for row in csv_reader:
    a=(row[0]).strip().ljust(8)    
    for i in range(len(row)-1):
       a=a+row[i+1].strip().rjust(8)  
    print(a)
    a=a+'\n'
    with open(f_n_g,'a') as f_n:
         f_n.write(a)

 

两个功能,合二为一

import shutil
import csv

oldname = 'static_linear.bdf'

keywords = ['GRID', 'CQUAD4','SPC,','FORCE,']
newname=oldname[0:len(oldname)-4]+'.csv'
filename=oldname[0:len(oldname)-4]+'_GRID'+'.csv'
clipname='GRID_ELEM.csv'

shutil.copy(oldname,newname)

with open(newname,'r') as f:
  lines = f.readlines()
  for keyword in keywords:
    i = 0
    for line in lines:
        i += 1
        if keyword in line:
            print(line, end="")  # 本身已经有个换行符
            with open(filename,'a') as f_n:
                f_n.write(line)          


csv_reader = csv.reader(open(filename, encoding='utf-8'))
for row in csv_reader:
    a=(row[0]).strip().ljust(8)    
    for i in range(len(row)-1):
       a=a+row[i+1].strip().rjust(8)  
    print(a)
    a=a+'\n'
    with open(clipname,'a') as f_n:
         f_n.write(a)


               


            
      

 

 

posted @ 2022-03-26 22:31  redufa  阅读(73)  评论(0)    收藏  举报