Python:关闭未分配给任何变量的文件描述符

3
当我不将文件描述符分配给变量,而是在行内打开它时,会发生什么?我该如何在以后关闭它?
例如:
import csv
writer = csv.writer(open('a_file', 'wb'))
for line in some_data:
    writer.writerow(line)

我知道我应该使用 with,但在这种特殊情况下,我该怎么做才能关闭对应于a_file的文件描述符呢?

仅仅使用with并不是“更容易”的事情。我完全不知道为什么你会希望这样做,但我强烈反对。 - Aleksander Lidtke
3
好的,我只想知道在这个特定案例中发生了什么 :) - Ricky Robinson
1
互联网上有很多关于我描述的打开文件的例子,所以我只是想知道这些文件描述符发生了什么。没有必要因为这不是完成这个简单任务的最佳和推荐方法而变得暴躁。 ;) - Ricky Robinson
不要变得暴躁,鼓励好奇心,只是想确保一下 ;) - Aleksander Lidtke
2个回答

4

最终会被垃圾回收。

这不是一个好的做法,因为您可能需要刷新文件内容以实际写入磁盘。让垃圾收集器在它想要的时候执行其工作,你不确定文件何时或是否实际写入。


1

文件描述符与Python中的任何其他对象类似。当对其的引用超出作用域时,引用计数会减少。当没有更多引用时,它会被删除。


好的,当我处于交互模式时,按照我所描述的做法是非常不好的实践! - Ricky Robinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接