python中,csv模块中的next()函数,在使用next()之后,对之后从阅读器对象reader中取值产生的影响。

一、初学csv模块,在代码中发现一个问题,然后怀疑调用next()之后,为什么从reader中取值为什么会不同,代码和结果如下:
1、在调用过next()的情况:

import csv

#从文件中获取最高气温
filename = 'sitka_weather_07-2014.csv'
with open(filename) as f:
	reader = csv.reader(f)
	header_row = next(reader)
	
	highs = []
	for row in reader:
		highs.append(row[1])
	print(highs)

运行结果:
python中,csv模块中的next()函数,在使用next()之后,对之后从阅读器对象reader中取值产生的影响。_第1张图片
2、删除上述代码中代码行:“ header_row = next(reader)”的运行情况:
python中,csv模块中的next()函数,在使用next()之后,对之后从阅读器对象reader中取值产生的影响。_第2张图片
我们可以发现,在调用过next()之后,缺少了数据中的”Max TemperatureF",但是在代码中,并不觉得reader的值有发生过变化,为什么用 “for row in reader:”会使得取得的值不同?
3、数据文件截图:
python中,csv模块中的next()函数,在使用next()之后,对之后从阅读器对象reader中取值产生的影响。_第3张图片
二、在查询相关消息之后,csdn中的相关消息中,得出这些信息,用于对此处产生疑问的学习者参考:
根据博主 bear_sun给出的解释为:
这个函数的参数是迭代器(iterator)和一个default ,即next(iterator, default) ,default是迭代器已经到了最末端,再调用next()函数的输出值。不填这个参数的话,到了最末端还用next()的话会报错。因此在python编程:从入门到实践里面的代码输入的是csv文件的迭代器,其指向文件的第一行,用了next之后,此迭代器指向文件的第二行,进行读取。
该博客链接:
另外一位博主在关于迭代器terator的next()方法理解中的相关解释:
一开始迭代器在所有元素的左边,调用next()之后,迭代器移到第一个和第二个元素之间,next()方法返回迭代器刚刚经过的元素。
该博客链接

希望上述的一些表述能对此问题产生疑问的朋友有所帮助。

你可能感兴趣的:(csv中next()函数)