我有一个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 all。这样我就可以复制并粘贴到Excel中(除非我可以将它输出到Excel然后它会节省我一步)并且能够对所有加载进行排序并知道它们属于哪个文件和步骤。
我尝试使用import glob,然后从目录中的所有输入文件中提取信息,但我不知道如何将信息写入输出文件。
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))
答案 0 :(得分:0)
也许你可以使用正则表达式......
import re
import os
directory=r'C:\Users\Doug\Desktop'
fileName='sampleDeck'
file_fullPathName=os.path.join(directory, fileName + '.inp')
with open(file_fullPathName, 'r') as inpDeck:
lines = inpDeck.read()
lines=re.findall(r"^\*Dflux(|,\s*amplitude=[^,]*?)\n([^,]*?),\s*BF\s*,([^,]*?\n)",lines, flags=re.IGNORECASE|re.MULTILINE)
file_fullPathName=os.path.join(directory, fileName + '-out.txt')
with open(file_fullPathName, "w") as outp:
for line in lines:
outp.write(','.join(line)) #Write text file