在python中查找文本文件数据的平均值,最小值和最大值

时间:2017-12-27 05:32:24

标签: python-3.x

我正在尝试使用python 3.4找到文本文件数据的平均最小最大金额。

输入文本文件包含两个数字:

  • 第一个表示日期,是从零开始的整数
  • 第二个是当天结束时读取发电表。

请注意,文件中的每一天都没有读数,文件中的某些行以#开头,并被解释为注释。

为了找到每天的平均值,最小值和最大值,我使用了以下代码,但它无法正常工作,因为拆分列表包含#和其他注释。

是否有人可以建议我以适当的方式删除不需要的部分?或者可以建议我找到每天的平均,最小和最大量的适当方法。

代码如下:

import sys, math, pylab
with open('generation.dat') as f:

for line in f:
    parts = line.split()            # Will split line into parts
    if len(parts) > 1:              # if at least 2 columns
        days = parts[0]             # first line denotes the day
        readings = parts[1]         # second line is the reading of the generation meter at the end of the day
        #days.remove(#)
        #readings.remove(Day, holiday)

        #d = int(days)
        #r = float (readings)
        print (days, readings)      # print columns

amounts = [ readings[i] - readings[i-1] for i in range(1, len(readings))


print ("Mean amount generated per day is:", (sum(amounts) / len(amounts)))
print ("Minimum amount generated per day is:", min(amounts))
print ("Maximum amount generated per day is:", max(amounts))

文本文件包含下面提到的数据

# Day zero is 30 xi 2011
0 99.5
# xii 2011
1 102.1
2 109.9
3 116.5
4 117.7
5 124.2
6 131.6
7 140.9
8 141.7
9 151
10 158.2
11 158.8
12 167.6
13 175
14 179.3
15 183.2
16 183.7
17 190.4
18 195
19 195.7
20 200
21 200.9      shortest day

使用上述代码后输出显示如下:

# Day
0 99.5
# xii
1 102.1
2 109.9
3 116.5
4 117.7
5 124.2
6 131.6
7 140.9
8 141.7
9 151
10 158.2
11 158.8
12 167.6
13 175
14 179.3
15 183.2
16 183.7
17 190.4
18 195
19 195.7
20 200
21 200.9

1 个答案:

答案 0 :(得分:0)

如果您想跳过评论行(从<form class="example-form"> <mat-form-field class="example-full-width"> <input matInput placeholder="Favorite food" value="Sushi"> </mat-form-field> <mat-form-field class="example-full-width"> <textarea matInput placeholder="Leave a comment"></textarea> </mat-form-field> </form> 开始),只需替换

#

人:

if len(parts) > 1:

如果您想删除每行中的所有评论,只需添加

即可
if len(parts) > 1 and not line.startswith('#'):

在行line = line.split('#')[0] 之前