数据来源:rp5网站
下载数据样式:选择UTF-8编码。下载后解压得到 xxx.csv 文件
计算目标:包含每个月的平均气温和当月每一天的平均气温,按月命名并存储在相应文件中。
数据格式:
注意:
- 每日平均气温包含时次:02,08,14,20。初始数据包含时次中05,11,17,23时没有用处。
- 可能文件中某些日期有缺失的时次,如果有就不计算当天均温。计算月均温时总日数不包括缺失的这天。
代码:
1 #!/usr/bin/env python3 2 def calcTemp(t_file): 3 with open(t_file, ‘r‘) as f: 4 line = f.readline() 5 while line.startswith(‘#‘): 6 line = f.readline() 7 time = (‘20‘, ‘14‘, ‘08‘, ‘02‘) 8 line = f.readline() 9 while True: 10 if not line: 11 break 12 L, _sum, month = [], 0, line[4:6] 13 result = open(‘averageTemp‘ + month, ‘w‘) 14 while True: 15 day = line[1:3] 16 for i in range(4): 17 if line[12:14] != time[i]: 18 break 19 try: 20 _sum += float(line.split(‘;‘)[1].replace(‘"‘, ‘‘)) 21 except: 22 break 23 if i != 3: 24 f.readline() 25 line = f.readline() 26 else: 27 result.writelines( 28 day + ‘:‘ + str(round(_sum / 4, 1)) + ‘\n‘) 29 L.append(round(_sum / 4, 1)) 30 line = f.readline() 31 _sum = 0 32 if line[4:6] != month: 33 result.writelines(month + ‘月平均气温:‘ + 34 str(round(sum(L) / len(L), 1))) 35 result.close() 36 break 37 print(‘completed‘) 38 39 40 if __name__ == ‘__main__‘: 41 import sys 42 if len(sys.argv) != 2: 43 raise ValueError(‘需要一个文件名参数‘) 44 calcTemp(sys.argv[1])
使用方法:
python3 文件名.py 数据文件.csv
计算结果:
单个文件:
时间: 2024-10-29 10:48:54