如果我想关闭具有无限循环的程序中的文件,我可以执行以下操作:
file = open('abc', 'w')
while True:
try:
file.write('a\n')
except KeyboardInterrupt:
break
file.close()
但如果我这样就离开了:
file = open('abc', 'w')
while True:
file.write('a\n')
退出时文件是否会关闭?
答案 0 :(得分:0)
Python有automatic garbage collection。垃圾收集是自动清除未使用的文件句柄或内存中的数据。当一个python程序停止时,如果它已经完全停止,它将释放它关闭时使用的内存和文件句柄。在编写长时间运行的程序或访问大量信息或文件时,熟悉垃圾收集的工作方式是明智的。
答案 1 :(得分:0)
如上所述@Mitch Jackson,如果一个python程序干净利落,它将释放内存。在您的情况下,因为您只是在while循环中打开一个文件。除非您明确包含异常处理(如try-catch block
或with
语句,否则程序将无法在暂停时关闭已打开的文件。
以下是有关with
声明的文档:docs