如何让 iter_lines 成为非阻塞的?

问题描述

嗨,我是 Python 新手,我有一些类似这样的代码

import requests
import asyncio

async def get_http_stream():
  res = requests.get('https://www.blah.com',stream=True)
  for line in res.iter_lines(decode_unicode=True):
    print(line)

async def wait_then_print(secs):
  await asyncio.sleep(secs)
  print(f' xxxxxx {secs} xxxxxx')

async def main():
  await asyncio.wait([
    wait_then_print(20),get_http_stream(),wait_then_print(10),wait_then_print(0)
  ])

if __name__ == '__main__':
  loop = asyncio.get_event_loop()
  loop.run_until_complete(main())

实际输出

every line from stream...
END
xxxxxx 0 xxxxxx 
xxxxxx 10 xxxxxx
xxxxxx 20 xxxxxx

期望输出

xxxxxx 0 xxxxxx 
some lines from stream...
xxxxxx 10 xxxxxx
more lines from stream...
END
xxxxxx 20 xxxxxx 

获得所需输出的正确方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...