代码之家  ›  专栏  ›  技术社区  ›  Thierry Lam

python“open”函数是否将其内容保存在内存或临时文件中?

  •  8
  • Thierry Lam  · 技术社区  · 14 年前

    对于以下python代码:

    fp = open('output.txt', 'wb')
    # Very big file, writes a lot of lines, n is a very large number
    for i in range(1, n):
        fp.write('something' * n)
    fp.close()
    

    上面的写入过程可以持续30分钟以上,有时我会出错 MemoryError . 关闭前文件的内容是存储在内存中还是写入临时文件?如果它在一个临时文件中,那么它在Linux操作系统上的一般位置是什么?

    编辑:

    在for循环中添加了fp.write

    6 回复  |  直到 14 年前
        1
  •  5
  •   Ignacio Vazquez-Abrams    14 年前
        2
  •  3
  •   unwind    14 年前

        3
  •  2
  •   jcdyer Anand S Kumar    14 年前

    for i in range(1,n):
        for each in range n:
            fp.write('something')
    fp.close()
    

    "something" "something" * n

        4
  •  1
  •   Tendayi Mawushe    14 年前

    fp.flush()

    fp = open('output.txt', 'wb')
    counter = 0
    for line in many_lines:
        file.write(line)
        counter += 1
        if counter > 999:
            fp.flush()
    fp.close()
    

        5
  •  0
  •   ghostdog74    14 年前

    fp.flush()

        6
  •  0
  •   rob    14 年前


    def do_something(a, b = []):
        b.append(a)
        return b
    
    fp = open('output.txt', 'wb') 
    
    for i in range(1, n): 
        something = do_something(i)
        fp.write(something)
    
    fp.close()
    

    do_something