我使用它已有 12 年了:
content=open(foo).read()
来自大学的新同事说:你应该使用with
语句。
with open(foo) as fd:
content=fd.read()
我没有看到一个很好的理由为什么我应该输入不必要的内容。
with
语句给我的唯一好处是:一旦 block 离开,fd
就会关闭。如果没有 with
语句,如果垃圾收集器开始执行其工作,则 fd
将关闭。
请告诉我:如果我一次读取整个文件,为什么要使用 with
语句?
更新:我知道 with 语句是如何工作的,我知道它很有用(例如写入文件)。
最佳答案
好吧,就您的目的而言,没有真正的理由。但是,with
的用处并不仅限于文件。它可以与线程一起使用。例如:
import threading
lock = threading.Lock()
with lock:
# Critical section
statements
# End critical section
with
语句在控制进入和离开后面的语句 block 时自动获取和释放锁。
使用它已成为一种很好的做法,因为它为您的代码增加了额外的安全性,并使文件读取部分更加突出和可读(在我看来),因为当您使用 with
语句时,您本质上是在缩进 block 内。
关于python - 如果一次读取整个文件需要 with 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634335/