我的脚本会创建文件以在运行时间内存储数据,我想删除程序中终止的文件。这可能吗?
我不想要一个解决方案的建议......比如'不要创建文件'。
非常感谢!
答案 0 :(得分:7)
Python的os模块怎么样?有一种“remove()”方法可以做你想要的。
要处理程序的退出,您可以使用atexit模块。
示例:
import os
def delete_file(name):
os.remove(name)
import atexit
atexit.register(delete_file, file_path)
file_path是要删除的文件。
答案 1 :(得分:6)
您需要atexit()处理程序。
根据我的经验,也许是由于解释器中的错误(?),我发现使用它们非常具有挑战性,因为有时我需要使用的资源已被清理,包括我需要使用的模块。
答案 2 :(得分:1)
Python提供对tempfiles
的支持(参见同名模块)。当程序终止时,可能无法保证删除这些内容,但操作系统知道可以在没有通知的情况下删除它们(例如,在某些Unix上,每晚)。
答案 3 :(得分:1)
这是一个似乎正常工作的简单方法。我没有在实际代码中使用它,因此可能存在我不知道的缺点。欢迎来自更有经验的Pythonistas的批评。
import sys
def main():
print('main')
sys.exit(0)
try:
main()
finally:
print('cleanup code goes here')