Skip to content

Commit 626c4c7

Browse files
committed
Create yield
1 parent d72dc61 commit 626c4c7

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

yield

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
如果直接对文件对象调用 read() 方法,会导致不可预测的内存占用。
2+
好的方法是利用固定长度的缓冲区来不断读取文件内容。
3+
通过 yield,我们不再需要编写读文件的迭代类,就可以轻松实现文件读取:
4+
5+
def read_file(fpath):
6+
BLOCK_SIZE = 1024
7+
with open(fpath, 'rb') as f:
8+
while True:
9+
block = f.read(BLOCK_SIZE)
10+
if block:
11+
yield block
12+
else:
13+
return

0 commit comments

Comments
 (0)