文件weather.in(csv格式,utf-8编码)存放了一段时间的天气数据,请筛选出其中天气为阴,且最低温大于等于1℃的数据,将其csv格式,utf-8编码存储至weather.out文件。 注意:测试用例中数据条数和样例可能不同。
日期,天气状况,最高温,最低温,风力风向
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℃,旋转风 微风
日期,天气状况,最高温,最低温,风力风向
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
with open('weather.in', encoding='utf-8', newline='') as fr:
reader = csv.reader(fr)
with open('weather.out', 'w', encoding='utf-8', newline='') as fw:
fw.write("日期,天气状况,最高温,最低温,风力风向\n")
writer = csv.writer(fw)
for row in reader:
if row[1] == '阴' and int(row[3].replace('℃', '').strip()) >= 1:
writer.writerow(row)
import csv
:导入CSV模块,用于读写CSV文件。with open('weather.in', encoding='utf-8', newline='') as fr:
:使用with
语句打开名为'weather.in'的文件,以只读模式读取(默认模式为文本模式),并指定编码为UTF-8(encoding='utf-8'
)。newline=''
参数用于指定换行符处理方式,为空表示不进行额外的换行符处理。将文件对象赋值给变量fr
,with
语句能够自动关闭文件。reader = csv.reader(fr)
:创建一个CSV读取器对象reader
,使用文件对象fr
作为输入,用于按行读取CSV文件中的数据。with open('weather.out', 'w', encoding='utf-8', newline='') as fw:
:使用with
语句打开名为'weather.out'的文件,以写入模式写入(默认模式为文本模式),并指定编码为UTF-8(encoding='utf-8'
)。newline=''
参数用于指定换行符处理方式,为空表示不进行额外的换行符处理。将文件对象赋值给变量fw
,with
语句能够自动关闭文件。fw.write("日期,天气状况,最高温,最低温,风力风向\n")
:向文件fw
写入一行文本,内容为"日期,天气状况,最高温,最低温,风力风向",表示输出文件的表头。writer = csv.writer(fw)
:创建一个CSV写入器对象writer
,使用文件对象fw
作为输出,用于按行写入数据到CSV文件中。for row in reader:
:遍历CSV读取器对象reader
读取的每一行数据,每次将一行赋值给变量row
。if row[1] == '阴' and int(row[3].replace('℃', '').strip()) >= 1:
:判断如果该行数据中第二个元素(天气状况)等于'阴'并且第四个元素(最低温度)经过去除'℃'并去除首尾空格后转换为整数后大于等于1,则执行下一行代码。writer.writerow(row)
:使用CSV写入器对象writer
将满足条件的数据行row
写入CSV文件。