txt文件名假设为a,格式如下:
文件的前面部分有n行,第n+1行开始为数字:
0.00000000E+00 1.99000000E-02 1.05000000E+00 0.00000000E+00 3.88519671E+02
4.20000000E-02 1.99000000E-02 1.00800000E+00 0.00000000E+00 4.23216155E+02
8.40000000E-02 1.99000000E-02 9.66000000E-01 0.00000000E+00 4.67920285E+02
1.26000000E-01 1.99000000E-02 9.24000000E-01 0.00000000E+00 4.89975818E+02
1.68000000E-01 1.99000000E-02 8.82000000E-01 0.00000000E+00 5.01845166E+02
2.10000000E-01 1.99000000E-02 8.40000000E-01 0.00000000E+00 5.10017363E+02
2.52000000E-01 1.99000000E-02 7.98000000E-01 0.00000000E+00 5.15927207E+02
2.94000000E-01 1.99000000E-02 7.56000000E-01 0.00000000E+00 5.18914324E+02
3.36000000E-01 1.99000000E-02 7.14000000E-01 0.00000000E+00 5.18683254E+02
我想对第5行最后一列对应的数字进行判断(即5.01845166E+02),若在500~520范围之外则修改参数重新计算;若在范围之内则输出最后一列的所有数据到另一个文件b。
请问该怎么实现啊。
你的数据来自文本文件,可以用 for ln in filter(None, open(datafile, 'rt'))
替代 for ln in filter(None, context.splitlines())
谢谢回复,没太看明白。
请问找到第5行最后一列的数字体现在哪一句呢?
这段代码解读文本到数组中, 并用debugView展示数组中的数值
#~ 对第5行最后一列对应的数字进行判断(即5.01845166E+02),
#~ 若在500~520范围之外则修改参数重新计算;
#~ 若在范围之内则输出最后一列的所有数据到另一个文件b
if 500 <= array[4][-1] <= 520:
with open("output.txt", "w") as handle:
for row in array:
handle.write("\t".join(map(str, row))+"\n")
else:
# 修改参数重新计算;
pass