退出命令行后如何在python中运行函数

时间:2018-02-01 23:03:30

标签: python macos terminal google-drive-api

我想在终端上“命令c”之后运行一个函数。我正在使用python将一些数据写入文件,然后我想立即关闭并将文件推送到谷歌驱动器,当我终止报​​废过程时。我已经写了两个不同的文件用于报废和推送但是我想这样做所有这一切在一个文件中。如何在python中指出“命令c”的变化?如果命令c..do this ...

任何帮助都会非常实用!谢谢!

2 个答案:

答案 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)

请注意,根据指定的KeyboardInterruptKeyboardInterrupt例外情况继承自BaseException,但不是来自Exception。 因此,except Exception子句不会捕获KeyboardInterrupt,而except BaseException会捕获KeyboardInterruptException

答案 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}}