代码之家  ›  专栏  ›  技术社区  ›  aydow

打开文件写入的最佳方法是什么时候?

  •  0
  • aydow  · 技术社区  · 6 年前

    假设我需要压缩一些数据,然后将结果写入某个文件。

    最好先打开文件,然后处理数据,然后写入文件?

    with open('file', 'w') as f:
        summary = process_data()
        f.write(summary)
    

    或者在写之前打开文件更好?

    summary = process_data()
    with open('file', 'w') as f:
        f.write(summary)
    

    我的直觉告诉我如果 process_data() 需要大量的内存,如果 file 如果规模较大,第一种方法可能存在一些问题。

    编辑:

    为了从一些回答中澄清,每种方法的优缺点是什么?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Andrew Morozko    6 年前

    python没有类似c的作用域,只有作用域构造是 def class 块,所以 summary 之后没有清理 with 块已在第二个示例中结束。

    我只能想到一个区别:在写模式下打开文件会清除它,因此如果 process_data 需要很长时间 具有 块-它使文件在空状态下保留更长时间。

    如果这不是一个问题,这是2+3对3+2。

        2
  •  0
  •   CIsForCookies    6 年前

    更好地定义…

    我可以想到几个方面:

    1. 文件所需的时间-如果其他用户需要此文件,则最好尽可能少地将其打开供您使用-->之前的处理
    2. 清洁编码-The with 陈述比 open + close -->内部处理

    我的直觉告诉我,如果进程Data()需要大量的内存,并且文件很大,那么第一种方法可能存在一些问题。

    的大小 file 不要紧,因为你不读,你只打开它写作…