如果在程序关闭之前有办法执行某个操作,我就会徘徊.我正在运行一个程序很长一段时间,我确实希望能够关闭它并将数据保存在文本文件或其他东西中,但是我没有办法干扰while True我运行的循环,只是保存每个循环的数据都非常无效.
那么有什么方法可以保存数据,比如列表,当我点击x或销毁程序时?我一直在看atexit模块,但没有运气,除非我设置程序在某一点完成.
def saveFile(list):
print "Saving List"
with open("file.txt", "a") as test_file:
test_file.write(str(list[-1]))
atexit.register(saveFile(list))
Run Code Online (Sandbox Code Playgroud)
这是我整个atexit代码的部分,就像我说的那样,当我将它设置为关闭时,它运行正常while loop.
这是可能的,在应用程序终止时保存一些东西吗?
你的atexit用法是错误的.它需要一个函数及其参数,但你只是立即调用你的函数并将结果传递给atexit.register().尝试:
atexit.register(saveFile, list)
Run Code Online (Sandbox Code Playgroud)
请注意,这会使用list您在调用时存在的引用atexit.register(),因此如果您list之后分配,则不会选择这些更改.但是,修改列表本身而不重新分配应该没问题.