我是靠谱客的博主 光亮柚子,这篇文章主要介绍Python Cookbook 4.16 用迭代器取代 while 循环,现在分享给大家,希望可以做个参考。

在我们读取一个文件的时候,前面使用的方法是 next() 函数逐行读取,或者 f.read() 不加参数 直接读出所有数据。
或者我们也可以使用迭代的方法进行读取。
示例如下:

复制代码
1
2
3
4
5
6
path = './task.txt' f = open(path, encoding='utf-8') for chunk in iter(lambda:f.read(10), ''): print(chunk, len(chunk)) f.close()

这里的意思是每次读取十个字节,’’ 作为一个哨兵值,没有数据了即返回。

或者 ‘’ 还可以变为其他特定字符,如果数据里读到了这个字符或者字符串则返回,比如这里我们使用 编码 的 码 字。

复制代码
1
2
3
for chunk in iter(lambda:f.read(1), '编'): print(chunk, len(chunk))

经过测试,哨兵值的设定是可以成功的。

最后

以上就是光亮柚子最近收集整理的关于Python Cookbook 4.16 用迭代器取代 while 循环的全部内容,更多相关Python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部