Fortran 程序生成的文本文件包含需要重新格式化的“块”数据(Python 脚本)。
此文件中的每个数据“块”对应于块开头指定的“时间:”。所有“块”都有固定的大小和结构。
我需要从每个“时间:”的不同“深度”(0、-1 和-2)对应的“头部”和“水分”列中提取数据。
注意:开头的标题不是重复数据“块”的一部分。
示例输入文件:
******* Program Simulation
*******
This is initial header information for Simulation
Date: 1. 6. Time: 15: 3:39
Units: L = cm , T = min , M = mmol
Time: 0.0000
Node Depth Head Moisture K
[L] [L] [-] [L/T]
1 0.0000 -37.743 0.0630 0.5090E-05
2 -1.0000 -36.123 0.0750 0.5090E-05
3 -2.0000 -33.002 0.0830 0.5090E-05
end
Time: 360.0000
Node Depth Head Moisture K
[L] [L] [-] [L/T]
1 0.0000 -0.1000E+07 0.0450 0.1941E-32
2 -1.0000 -253.971 0.0457 0.4376E-10
3 -2.0000 -64.510 0.0525 0.2264E-06
end
Time: 720.0000
Node Depth Head Moisture K
[L] [L] [-] [L/T]
1 0.0000 -0.1000E+07 0.0550 0.1941E-32
2 -1.0000 -282.591 0.0456 0.2613E-10
3 -2.0000 -71.829 0.0513 0.1229E-06
end
期望的输出:
Time Head(Depth=0) Head(Depth=-1) Head(Depth=-2) Moisture(Depth=0) Moisture(Depth=-1) Moisture(Depth=-2)
0.0000 -37.743 -36.123 -33.002 0.0630 0.0750 0.0830
360.0000 -0.1000E+07 -253.971 -64.510 0.0450 0.0457 0.0525
720.0000 -0.1000E+07 -282.591 -71.829 0.0550 0.0456 0.0513
我如何从每个“时间:”到“结束”关键字逐块读取输入文件并重新格式化为所需的输出?