让for循环创建.dat fi的最佳方法

2024-09-19 23:41:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让for循环写出自定义的.dat文件,使用for循环从.dat文件创建png图像。我的代码如下所示。我对这个比较陌生。非常感谢您的帮助。你知道吗

def MDNBR(self):
    self.filename = "MDNBR.gnu"
    self.figurename = "MDNBR.png"
    self.datafile = "MDNBR.dat"

    #-- post process / get data from XML file
    with open(self.datafile, 'w') as f:
        f.write('# Cycle  Limit  CEA Ejection  Dropped Control Rod or Bank  Increase in Steam Flow  Uncontrolled CEA Withdrawal from Power\n')

        for cycle in past_cycle_data:
            tmp = []
            for fsar_id in ["14.13"]:
                for event in past_cycle_data[cycle].autodnb.result:
                    if fsar_id == event["fsar_id"]: tmp.append(event["mdnbr"])
            f.write('{} {} {}\n'.format(cycle,'1.141',' '.join(tmp)))

    self.output = textwrap.dedent('''\
    set terminal png size 800,600 
    set output "{0}" 
    set grid 
    set xlabel "Cycle" 
    set title "MDNBR" 
    set xtics (24,25,26,27)
    set yrange[1.1:1.6]
    plot "{1}" using 1:2 title 'CHF Limit' w linespoints lt 0 lc -1 lw 2 pt 0, "{1}" u 1:3 t 'CEA Ejection' w linespoints lt 3 lw 2 pt 7 ps 1, "{1}" u 1:4 t 'Dropped Control Rod or Bank' w linespoints lt 10 lw 2 pt 9 ps 1, "{1}" u 1:5 t 'Increase in Steam Flow' w linespoints lt 4 lw 2 pt 2 ps 1, "{1}" u 1:6 t 'Uncontrolled CEA Withdrawal from Power' w linespoints lt 1 lw 2 pt 5 ps 1
    '''.format(self.figurename, self.datafile))
    pass

Tags: inltselfptforpngdatps