我目前正在大学学习计算机科学的初级水平。我不确定如何从打开的文件中获取某些信息......如果有机会,有人可以教我如何执行此代码吗?
def get_month_temp(openfile, m):
'''
(file, int) -> listReturn a list of temperatures for the
month mo for all years with data in
open_file, where mo is an integer between
0 and 12, representing January to December,
respectively.
>>>got_month_temp("temperature.csv", 1)
[24.7, 16,1, 10.4, 21.5, 19.1, 14.0, 8.4, 11.2, 13.4, 22.5, 17.6, 20.4]
'''
openfile = open_temperature_file(filename)
这是我所说的“temperature.csv”文件。
Average monthly temperatures in Dubuque, Iowa,
January 1964 through december 1975, n=144
24.7,25.7,30.6,47.5,62.9,68.5,73.7,67.9,61.1,48.5,39.6,20.0
16.1,19.1,24.2,45.4,61.3,66.5,72.1,68.4,60.2,50.9,37.4,31.1
10.4,21.6,37.4,44.7,53.2,68.0,73.7,68.2,60.7,50.2,37.2,24.6
21.5,14.7,35.0,48.3,54.0,68.2,69.6,65.7,60.8,49.1,33.2,26.0
19.1,20.6,40.2,50.0,55.3,67.7,70.7,70.3,60.6,50.7,35.8,20.7
14.0,24.1,29.4,46.6,58.6,62.2,72.1,71.7,61.9,47.6,34.2,20.4
8.4, 19.0,31.4,48.7,61.6,68.1,72.2,70.6,62.5,52.7,36.7,23.8
11.2,20.0,29.6,47.7,55.8,73.2,68.0,67.1,64.9,57.1,37.6,27.7
13.4,17.2,30.8,43.7,62.3,66.4,70.2,71.6,62.1,46.0,32.7,17.3
22.5,25.7,42.3,45.2,55.5,68.9,72.3,72.3,62.5,55.6,38.0,20.4
17.6,20.5,34.2,49.2,54.8,63.8,74.0,67.1,57.7,50.8,36.8,25.5
20.4,19.6,24.6,41.3,61.8,68.5,72.0,71.1,57.3,52.5,40.6,26.2
答案 0 :(得分:0)
根据您的预期输出,每个月的所有温度数据都以垂直列排列
对csv.reader
对象,split
函数和列表理解使用以下方法:
def get_month_temp(openfile, m):
if m not in range(1, 13):
raise ValueError('incorrect month number!')
with open(openfile) as fh:
reader = csv.reader(fh, delimiter=',')
lines = [l.strip().split(',')[m-1] for l in fh]
print(lines)
get_month_temp("data/temperature.csv", 1)
输出:
['24.7', '16.1', '10.4', '21.5', '19.1', '14.0', '8.4', '11.2', '13.4', '22.5', '17.6', '20.4']