python - 在“with open()”块中使用“while True”循环的后果是什么?
问题描述
例如:
def read_file(f):
with open(f, 'r') as file_to_read:
while True:
line = file_to_read.readline()
if line:
yield line
else:
time.sleep(0.1)
生成器被另一个函数消耗:
def fun_function(f):
l = read_file(f)
for line in l:
do_fun_stuff()
一个用例是读取一个无限更新的文本文件,例如每秒钟左右添加新行的日志。
据我了解read_file()
,只要产生某些东西,该功能就会阻止其他功能。但是由于除非文件中存在新行,否则不应执行任何操作,因此在这种情况下似乎没问题。我的问题是是否有其他理由不喜欢这种阻塞模式(比如性能)?
解决方案
推荐阅读
- javascript - 在 Preact 中映射状态数组
- excel - 对范围内的单元格求和,同时包含特定名称
- python - 为什么我会遇到错误?
- python-3.x - 无法在 Python 3.8.0 上安装“gensim”
- javascript - 如何检查什么标签上写着密码
- java - java.lang.NoClassDefFoundError: sun/tools/javac/Main
- c - 在C中的开关盒中检测Enter?
- database - 我在查询中使用 countby() 但是要获得多少具体的计数?拉拉维尔
- java - 针对存储在 java.util.List 中的键/值对运行一系列论坛
- haskell - 如何使用函数`some`?