def read_line(self, time_limit=None):
"""
Read a line from the process.
Block or wait for time_limit secs. Timeout does not work on Windows.
"""
if self.proc is not None:
poll_obj = select.poll()
poll_obj.register(self.proc.stdout, select.POLLIN)
start = time.time()
while time_limit is None or time.time() - start < time_limit:
poll_result = poll_obj.poll(0)
if poll_result:
line = self.proc.stdout.readline().decode()
return line
else:
time.sleep(0.05)
raise TimeoutError()
else:
return None
评论列表
文章目录