1

さまざまなモデルとモデル内のステップを含む cae ファイルがあり、それらをチェックするために、入力モデルから体熱流束荷重を取得する簡単な方法が必要です。

入力ファイルを通過し、探している負荷を取得し、確認のために .txt ファイルに書き込むスクリプトを作成する方法はありますか?

以下は、キャプチャしたい情報を含む入力ファイルの一部です。

** STEP: StepName
** LOADS
** 
** Name: Capsule   Type: Body heat flux
*Dflux, amplitude=Power
Capsule-1.Capsule, BF, 4685.4
** Name: Fuel   Type: Body heat flux
*Dflux
Fuel-1.Fuel, BF, 431422.
** Name: Rodlet   Type: Body heat flux
*Dflux, amplitude=Power
Rodlet-1.Rodlet, BF, 4659.5
** Name: Spacer   Type: Body heat flux
*Dflux, amplitude=Power
Spacer, BF, 7022.2

上記の最初の質問には回答がありましたが、この質問にもう少し追加したいと思います。複数の入力ファイルがあり、このスクリプトを実行して、結果の出力ファイルで、inputfile、stepName、LoadName、および Load をすべて 1 行に表示したいと考えています。そうすれば、コピーして Excel に貼り付けることができ (Excel に出力できない限り、ステップを節約できます)、すべてのロードを並べ替えて、それらがどのファイルとステップに属しているかを知ることができます。

インポートグロブを使用して、ディレクトリ内のすべての入力ファイルから情報を取得しようとしましたが、出力ファイルに情報を思いどおりに書き込むことができません。

import re
import os
import glob

# Open output file for writing
outputFile = open('ATF_Loads.txt','w')

inputfileList = glob.glob('./*.inp')

for inputfile in inputfileList:

    with open(inputfile, 'r') as inpDeck:
        lines = inpDeck.read()

    lines=re.findall(r"^\*Dflux(|,\s*amplitude=[^,]*?)\n([^,]*?),\s*BF\s*,([^,]*?\n)",lines, flags=re.IGNORECASE|re.MULTILINE)

    for line in lines:
        outputFile.write(','.join(line))
4

1 に答える 1