当我没有将其分配给变量时,文件描述符会发生什么变化,但是我只是将它“in line”打开?我以后如何关闭它?python:关闭未分配给任何变量的文件描述符
例如:
import csv
writer = csv.writer(open('a_file', 'wb'))
for line in some_data:
writer.writerow(line)
我知道我应该使用with
,但我能在这个特殊的情况下做关闭对应a_file
文件描述符?
当我没有将其分配给变量时,文件描述符会发生什么变化,但是我只是将它“in line”打开?我以后如何关闭它?python:关闭未分配给任何变量的文件描述符
例如:
import csv
writer = csv.writer(open('a_file', 'wb'))
for line in some_data:
writer.writerow(line)
我知道我应该使用with
,但我能在这个特殊的情况下做关闭对应a_file
文件描述符?
最终被垃圾收集。
这样做不是一个好习惯,因为您可能需要刷新文件的内容以实际写入磁盘。通过让垃圾收集器在需要时执行其工作,您不确定何时或是否将文件实际写入。
文件描述符就像Python中的任何其他对象一样。当引用超出范围时,引用计数递减。当没有更多的引用时,它被删除。
好吧,所以当我在互动模式下,做我所描述的是非常糟糕的做法! –
使用'with'不仅“更容易”。我绝对不知道你为什么希望这样做,但我强烈不鼓励。 –
好吧,我只是想知道在这种特殊情况下发生了什么:) –
Internet上有很多例子以我描述的方式打开文件,所以我只是想知道这样的文件描述符发生了什么。没有必要让所有的脾气暴躁,因为这不是完成这项简单任务的最佳和推荐的方式。 ;) –