所以我想用三重奏(异步)打开文件,然后由于文件相当大,读取它的单个特定行
所以在“普通”同步python中,我会做这样的事情:
with open("text.txt") as f:
for i, line in enumerate(f):
if i == 3:
print(line)
这将打印文件第二行的内容
现在的问题是,当使用 trio 的 open_file 方法时,enumerate(f)
返回错误:
TypeError: 'AsyncIOWrapper' object is not iterable
并遵循文档:
async with await trio.open_file("text.txt") as f:
async for i, line in f:
print(i)
print(line)
将只返回 i 的行值,并且只返回行的空格
那么,如何使用 trio/asynchronoulsy 在不丢失大量内存的情况下读取大文件的特定行?