程序退出时关闭Python文件

时间:2016-07-20 02:54:04

标签: python file keyboardinterrupt

如果我想关闭具有无限循环的程序中的文件,我可以执行以下操作:

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')

退出时文件是否会关闭?

2 个答案:

答案 0 :(得分:0)

Python有automatic garbage collection。垃圾收集是自动清除未使用的文件句柄或内存中的数据。当一个python程序停止时,如果它已经完全停止,它将释放它关闭时使用的内存和文件句柄。在编写长时间运行的程序或访问大量信息或文件时,熟悉垃圾收集的工作方式是明智的。

答案 1 :(得分:0)

如上所述@Mitch Jackson,如果一个python程序干净利落,它将释放内存。在您的情况下,因为您只是在while循环中打开一个文件。除非您明确包含异常处理(如try-catch blockwith语句,否则程序将无法在暂停时关闭已打开的文件。

以下是有关with声明的文档:docs