代码之家  ›  专栏  ›  技术社区  ›  xtofl Adam Rosenfield

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

  •  2
  • xtofl Adam Rosenfield  · 技术社区  · 14 年前

    我正在尝试用python创建一个逐行过滤器。然而, stdin.readlines() MemoryError ).

    我怎么能 只有一行 一次在记忆里?

    我的代码类型:

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

    2 回复  |  直到 13 年前
        1
  •  12
  •   rkhayrov    14 年前
    for line in sys.stdin:
        ...
    

    或者打电话 .readline() 在一个循环中。

        2
  •  2
  •   dogbane    14 年前
    import sys
    while 1:
        line = sys.stdin.readline()
        if not line:
            break
        if (filter.apply(line)):
            print(line)
    
    推荐文章