Python的语句与语法-迭代器和解析
• 迭代器:初探
• 文件迭代器
• 手动迭代
• 其它内置类型迭代器
• 列表解析:初探
• 其它迭代环境
• Python3.x中新的迭代环境
• range
• map、zip、filter
• 多个迭代器vs单个迭代器
• 字典试图迭代器
文件迭代器
回忆一下之前章节,文件访问方式有如下:
<file>.read(): 一次性读取全部内容。
<file>.readline(): 一次读取一行。
<file>.readlines(): 生成列表,每一行是每个元素。
<file>.__next__(): 跟readline()差不多,但读取完之后报错。
__next__()报错,为StopIteration。在Python中任何这类对象都认为是可迭代的。
在Python里迭代工具(比如for)会调用__next__()来获取数据,并以StopIteration来确认何时离开。
注: 尽量不要使用readlines()函数,因为这个会一次性的把所有内容读取到内存里
(转换为列表),运行速度会比较慢。
最好使用readline或者迭代文件方法。