Python 文件操作与迭代器使用技巧
1. 用迭代器替换无限 while 循环
1.1 问题描述
在某些程序中,由于存在特殊函数或不寻常的检查条件,无法使用标准迭代模式,因此使用 while 循环来迭代处理数据。
1.2 解决方案
可以使用 iter() 函数来替换 while 循环。以下是一个示例代码:
CHUNKSIZE = 8192
def reader(s):
while True:
data = s.recv(CHUNKSIZE)
if data == b'':
break
process_data(data)
# 使用 iter() 替换
def reader(s):
for chunk in iter(lambda: s.recv(CHUNKSIZE), b''):
process_data(data)
还可以通过以下示例来验证其可行性:
import sys
f = open('/etc/passwd')
for chunk in iter(lambda: f.read(10), ''):
n = sys.stdout.write(chunk)
1.3 原理探讨
Python 文件操作与迭代器使用技巧
超级会员免费看
订阅专栏 解锁全文
1421

被折叠的 条评论
为什么被折叠?



