Python协助:如何从文本文件中删除某些行,然后平均最后3行

时间:2019-02-05 14:19:48

标签: python-3.6

我有一个文本文件(info.txt),格式如下:

Output data file
#
#
1.0 2.0 0.3e+01
2.0 3.0 0.4e+01
3.0 4.0 0.5e+01
4.0 5.0 0.6e+01
5.0 6.0 0.7e+01

我想以3种方式处理此文件:

  1. 删除以“ Output”和“#”开头的行,然后应保留三列数字。
  2. 提取最后三行,然后平均最后三列。
  3. 提取最后3行并平均每一行

我在Bash / VI中做了类似的事情,但是我希望能够在Python中做到这一点。寻找有关如何操作文本文件的明确说明具有挑战性,有人可以指出一些良好的python资源(例如备忘单)吗?我确实有“ B.M. Harwani编写的Python编程简介”,但是,我觉得我需要更多的示例。对代码的任何帮助将不胜感激。

代码1

import sys
f = open('info.txt', 'r')
lines = f.readlines()
for line in lines:
    sys.stdout.write(line)
f.close()
del lines.startswith("Output","#") in lines
f = open('info_mod.txt', 'w')

以上操作无效,我知道...我需要帮助 如果我知道如何写出最后三行(类似于bash中的“ tail”),我可能会完全跳过上面的所有内容。假设我只有要平均的数据,我将执行以下操作:

代码2

average = 0
Sum=0
row_count = 0
for row in f:
    for column in row.split(' '):
        nfloat(column)
        Sum +=n
        row_count += 1
average_last = Sum / len(column)
f.writelines(lines)
f.close()
f = open ('info_mod.txt', 'r')
line=f.read()
print(lines)
f.close()

3的代码:我想对行进行平均,我将应用类似的方法,但将行替换为行?

输出1:

1.0 2.0 0.3e+01
2.0 3.0 0.4e+01
3.0 4.0 0.5e+01
4.0 5.0 0.6e+01
5.0 6.0 0.7e+01

输出2:

4.0 5.0 6.0

3的输出

4.0
5.0
6.0

0 个答案:

没有答案