我正在使用python从文件中读取数字天气数据,然后检查湿度条件。如果湿度小于或等于75,则应将湿度重写为“低”,如果湿度大于75,则应将其重写为“高”。以下是我在档案中的数据。
展望,温度,湿度,刮风,permission_to_play
我正在列表中读取此文件,然后访问湿度值。以下是我写的代码。
def fetchData(fileName):
datalist = []
rd =open(fileName,mode='r')
list = rd.readlines()
for l in list:
subList = l.strip().split(',')
humidity=subList[2]
if humidity>75:
subList[2]="high"
else:
subList[2]="low"
datalist.append(subList)
return datalist
dataList = fetchData('weather.numeric.data')
print dataList
执行此操作后,数据编号6,7,9,11,13的湿度值应低,其他值应高。但是所有的湿度值都变得很高,如下面的输出所示。
[['sunny', '85', 'high', 'FALSE', 'no'], ['sunny', '80', 'high', 'TRUE', 'no'], ['overcast', '83', 'high', 'FALSE', 'yes'], ['rainy', '70', 'high', 'FALSE', 'yes'], ['rainy', '68', 'high', 'FALSE', 'yes'], ['rainy', '65', 'high', 'TRUE', 'no'], ['overcast', '64', 'high', 'TRUE', 'yes'], ['sunny', '72', 'high', 'FALSE', 'no'], ['sunny', '69', 'high', 'FALSE', 'yes'], ['rainy', '75', 'high', 'FALSE', 'yes'], ['sunny', '75', 'high', 'TRUE', 'yes'], ['overcast', '72', 'high', 'TRUE', 'yes'], ['overcast', '81', 'high', 'FALSE', 'yes'], ['rainy', '71', 'high', 'TRUE', 'no']]
我应该做出哪些改变? 提前致谢! :)
答案 0 :(得分:2)
在与int
比较之前,您应该将字符串转换为75
:
if int(humidity)>75:
答案 1 :(得分:0)
1使用'with'语句打开文件:
dropdownEl
2将值转换为int:
with open (filename, "r") as rd:
#don't use list - it is a type name
mylist = rd.readlines()
for l in mylist .....