for只是循环读入文件中的行,不需要判断是否为空
迭代器 iterator
*提供一种方法顺序访问一个聚合对象中的各个元素
*对象是可iterator的
-Iter-->获取对象的迭代器
-next-->获取下一个值(迭代器中的next方法)
*for可以遍历iterator_obj
-List\\string
-Tunple\\Dict\\set(无序不重复的元素集)
-File
eg1:
fr=open(‘format.txt‘,‘r‘)
for strs in fr:
strs=strs.rstrip(‘\\n‘)
print strs #print的逗号表示打印在同一行,没有逗号则是换行打印
print "end reading!"
说明1:
for循环可以通过迭代器不断的调用next函数,把可迭代对象的各个数据依次取出来,一直到迭代器调用next抛出异常(stopIteration),则不可继续迭代。(迭代次数即for循环的执行次数)
eg2:
si=iter(s)---->内建函数,对字符串生成一个迭代器
type(si)----->可以看到si的类型是iterator
print si.next()---->w
print si.next()---->w
print si.next()---->w
print si.next()---->.
print si.next()---->j
print si.next()---->e
print si.next()---->a
...
...
迭代列表
eg3:
Li=[1,2,3,4,5]
Li=iter(Li)
type(Li)---->可以看到Li的类型是iterator
print Li.next()----1
print Li.next()----2
print Li.next()----3
print Li.next()----4
print Li.next()----5
...
...
说明2:
文件也是有序的聚合对象的集合,把文件的 ‘\\n‘ 理解成列表中的逗号,每一行看做是一个元素,所以通过迭代器可以将文件每行取出来
eg4:
fr=open(‘a.txt‘,‘r‘)
type(fr)---->file
fi=iter(fr)
type(fi)----可以看到fi的类型是iterator
print fi.next()
print fi.next()--------------可以看到\t、\n等字符
print fi.next()
原文:http://tenderrain.blog.51cto.com/9202912/1614174