从stdin读取,同时消耗的内存不超过所需

2024-03-29 10:48:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python创建一个逐行过滤器。但是,stdin.readlines()在开始处理之前读取所有行,python将耗尽内存(MemoryError)。

我怎么能一次只记住一行?

我的密码是:

for line in sys.stdin.readlines():
    if( filter.apply( line ) ):
        print( line )

(注:我在2.6)


Tags: 内存in密码过滤器forifstdinsys
2条回答
for line in sys.stdin:
    ...

或者在循环中调用.readline()

import sys
while 1:
    line = sys.stdin.readline()
    if not line:
        break
    if (filter.apply(line)):
        print(line)

相关问题 更多 >