gpt4 book ai didi

python - 如何避免 Python 文件输入缓冲

转载 作者:太空狗 更新时间:2023-10-29 20:30:54 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Setting smaller buffer size for sys.stdin?

我有一个 Python (2.4/2.7) 脚本,使用 fileinput 从标准输入或文件中读取。它易于使用,并且除了一种情况外效果很好:

tail -f log | filter.py

问题是我的脚本缓冲了它的输入,而(至少在这种情况下)我想立即看到它的输出。这似乎源于 fileinput 在执行任何操作之前使用 readlines() 获取其 bufsize 字节的事实。我尝试使用 1 的 bufsize,但它似乎没有帮助(这有点令人惊讶)。

我确实发现我可以编写这样的不缓冲的代码:

while 1:
line = sys.stdin.readline()
if not line: break
sys.stdout.write(line)

这样做的问题是我失去了文件输入功能(即它自动打开所有传递给我的程序的文件,如果没有,它甚至可以自动解压输入文件)。

那么我怎样才能兼得两者的优点呢?理想情况下,我不需要显式管理我的输入文件列表(包括解压缩),但在以“流式”方式使用时不会延迟输入。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com