Python 天气数据筛选

描述

文件weather.in(csv格式,utf-8编码)存放了一段时间的天气数据,请筛选出其中天气为阴,且最低温大于等于1℃的数据,将其csv格式,utf-8编码存储至weather.out文件。 注意:测试用例中数据条数和样例可能不同。

格式

输入,weather.in文件

日期,天气状况,最高温,最低温,风力风向
2011年1月1日,小雨,6℃, 1℃,北风 ≤3级
2011年1月2日,阵雨,5℃, 1℃,北风 ≤3级
2011年1月3日,阴,5℃, 0℃,旋转风 微风
2011年1月4日,阴,5℃, 1℃,旋转风 微风
2011年1月5日,阴,4℃, 1℃,北风 ≤3级
2011年1月6日,阴,6℃, 2℃,无持续风向 ≤3级
2011年1月7日,阴,7℃, 0℃,北风 ≤3级
2011年1月8日,多云,7℃, 1℃,无持续风向 ≤3级
2011年1月9日,阴,6℃, 1℃,北风 ≤3级
2011年1月10日,阴,5℃, 2℃,东北风 ≤3级
2011年1月11日,多云,7℃, 1℃,无持续风向 ≤3级
2011年1月12日,多云,7℃, 1℃,无持续风向 ≤3级
2011年1月13日,多云,7℃, 0℃,无持续风向 ≤3级
2011年1月14日,多云,7℃, 2℃,无持续风向 ≤3级
2011年1月15日,多云,4℃, 0℃,旋转风 微风
2011年1月16日,小雨,5℃, 1℃,无持续风向 ≤3级
2011年1月17日,雨夹雪,3℃, 0℃,北风 ≤3级
2011年1月18日,阴,3℃, 0℃,北风 ≤3级
2011年1月19日,阴,3℃, 0℃,东北风 ≤3级
2011年1月20日,阴,5℃, 0℃,无持续风向 ≤3级
2011年1月21日,多云,6℃, 0℃,无持续风向 ≤3级
2011年1月22日,阴,6℃, 2℃,北风 ≤3级
2011年1月23日,阴,5℃, 0℃,无持续风向 ≤3级
2011年1月24日,多云,7℃, 1℃,北风 ≤3级
2011年1月25日,阵雨,6℃, 1℃,无持续风向 ≤3级
2011年1月26日,小雨,5℃, 2℃,北风 ≤3级
2011年1月27日,雨夹雪,4℃, 1℃,北风 微风
2011年1月28日,多云,6℃, 0℃,东北风 微风
2011年1月29日,阴,7℃, 2℃,无持续风向 ≤3级
2011年1月30日,阴,7℃, 2℃,无持续风向 ≤3级
2011年1月31日,阴,7℃, 2℃,旋转风 微风

输出,weather.out文件

日期,天气状况,最高温,最低温,风力风向
2011年1月4日,阴,5℃, 1℃,旋转风 微风
2011年1月5日,阴,4℃, 1℃,北风 ≤3级
2011年1月6日,阴,6℃, 2℃,无持续风向 ≤3级
2011年1月9日,阴,6℃, 1℃,北风 ≤3级
2011年1月10日,阴,5℃, 2℃,东北风 ≤3级
2011年1月22日,阴,6℃, 2℃,北风 ≤3级
2011年1月29日,阴,7℃, 2℃,无持续风向 ≤3级
2011年1月30日,阴,7℃, 2℃,无持续风向 ≤3级
2011年1月31日,阴,7℃, 2℃,旋转风 微风

import csv

if __name__ == '__main__':
    with open('weather.in', 'r', encoding='utf-8') as f:
        d = f.read()
    with open('weather.csv', 'w', encoding='utf-8') as f:
        f.write(d)
    tasks = []
    with open('weather.csv', 'r', encoding='utf-8') as f:
        all_d = csv.reader(f)
        head = next(all_d)
        for i in all_d:
            if i[1] == '阴' and int(str(i[3]).strip('℃')) >= 1:
                tasks.append(i)

with open('weather.out', 'w', encoding='utf-8') as f:
    f.write(','.join(head) + '\n')
    for j in tasks:
        lis = ','.join(j)
        f.write(lis + '\n')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值