У меня есть файл 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
На мой первоначальный вопрос, опубликованный выше, был дан ответ, но я хотел бы добавить немного больше к этому вопросу. У меня есть несколько входных файлов, через которые я хотел бы запустить этот скрипт, и хотел бы, чтобы результирующий выходной файл содержал список входных файлов, stepName, LoadName и Load в одной строке. Таким образом, я могу копировать и вставлять в 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))