2013-12-17 32 views
3

当我没有将其分配给变量时,文件描述符会发生什么变化,但是我只是将它“in line”打开?我以后如何关闭它?python:关闭未分配给任何变量的文件描述符

例如:

import csv 
writer = csv.writer(open('a_file', 'wb')) 
for line in some_data: 
    writer.writerow(line) 

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

+0

使用'with'不仅“更容易”。我绝对不知道你为什么希望这样做,但我强烈不鼓励。 –

+3

好吧,我只是想知道在这种特殊情况下发生了什么:) –

+1

Internet上有很多例子以我描述的方式打开文件,所以我只是想知道这样的文件描述符发生了什么。没有必要让所有的脾气暴躁,因为这不是完成这项简单任务的最佳和推荐的方式。 ;) –

回答

4

最终被垃圾收集。

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

1

文件描述符就像Python中的任何其他对象一样。当引用超出范围时,引用计数递减。当没有更多的引用时,它被删除。

+0

好吧,所以当我在互动模式下,做我所描述的是非常糟糕的做法! –

相关问题