我正在打开一个 csv 文件:
def get_file(start_file): #opens original file, reads it to array
with open(start_file,'rb') as f:
data=list(csv.reader(f))
header=data[0]
counter=collections.defaultdict(int)
for row in data:
counter[row[10]]+=1
return (data,counter,header)
如果我在 WITH
循环中退出程序,文件是否保留在内存中?
当我退出程序而不将所有变量都设置为 NULL
时,程序中的一般变量会发生什么情况?
最佳答案
当您的进程终止时,操作系统将自动关闭所有打开的文件描述符。
存储在内存中的文件数据(例如变量、Python 缓冲区)将丢失。当文件隐式关闭时,操作系统中缓冲的数据可能会刷新到磁盘(在此处检查内核脏缓冲区的确切语义将具有教育意义,但您不应该依赖它)。
当您的进程终止时,您的变量将不复存在。
关于python:如果我在关闭文件之前退出,打开的文件会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3407522/