我编写了很多 Python 代码,我只想将文件读取到变量中。我知道推荐的两种方式是这些 -
with open('file') as f:
data = f.read()
# or
fo = open('file')
data = f.read()
fo.close()
我的问题是,这有什么缺点?
data = open('file').read()
最佳答案
缺点
data = open('file').read()
是取决于您的 Python 实现,打开文件对象的清理可能会或可能不会立即发生。这意味着文件将保持打开状态,使用文件句柄。这对于单个文件来说可能不是问题,但在循环中肯定会出现问题。
具体而言,CPython(通常的 Python 实现)使用引用计数对象,因此文件关闭几乎可以肯定将立即发生。但是,对于 IronPython 或 Jython 等其他实现而言,情况不一定如此。
关于python - open().read() 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831097/