3

Pythonで行ごとのフィルターを作成しようとしています。ただし、stdin.readlines()処理を開始する前にすべての行を読み込み、python がメモリ不足になります ( MemoryError)。

一度に 1 行だけメモリに入れるにはどうすればよいですか?

私が持っているコードの種類:

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

(注:私は2.6を使用しています)

4

2 に答える 2

13
for line in sys.stdin:
    ...

または.readline()、ループで呼び出します。

于 2010-07-16T10:00:00.217 に答える
2
import sys
while 1:
    line = sys.stdin.readline()
    if not line:
        break
    if (filter.apply(line)):
        print(line)
于 2010-07-16T10:33:55.070 に答える