我想在终端上“命令c”之后运行一个函数。我正在使用python将一些数据写入文件,然后我想立即关闭并将文件推送到谷歌驱动器,当我终止报废过程时。我已经写了两个不同的文件用于报废和推送但是我想这样做所有这一切在一个文件中。如何在python中指出“命令c”的变化?如果命令c..do this ...
任何帮助都会非常实用!谢谢!
答案 0 :(得分:0)
序列 ctrl + C (或Mac上的命令 + C )会导致{{3}要引发的异常。
您可以使用简单的try
- except
。
例如,以下代码将运行需要一些时间的虚拟工作,并且在 ctrl + C 上,将停止该工作并打印其当前状态。
import time
try:
for i in range(100):
time.sleep(1)
except KeyboardInterrupt:
print(i)
请注意,根据指定的KeyboardInterrupt
,KeyboardInterrupt
例外情况继承自BaseException
,但不是来自Exception
。
因此,except Exception
子句不会捕获KeyboardInterrupt
,而except BaseException
会捕获KeyboardInterrupt
和Exception
。
答案 1 :(得分:0)
您需要的是atexit
模块https://docs.python.org/2/library/atexit.html
创建一个处理函数来执行持久化部分。将其注册到def goodbye(name, adjective):
print 'Goodbye, %s, it was %s to meet you.' % (name, adjective)
import atexit
atexit.register(goodbye, 'Donny', 'nice')
以在出口处运行。
{{1}}