Ctrl-Cで中断できないようにする

次のようにすることで、Pythonスクリプトの実行中はCtrl-Cを受け付けないようにできます。

import signal
import time

## SIGINTシグナルを無視
signal.signal(signal.SIGINT, signal.SIG_IGN)

## 15秒間待ち続ける(Ctrl-Cで止められない)
time.sleep(15)

この方法はシグナルを扱うOSであれば動作するはずです。しかしOSによってはシステムコール処理中にCtrl-Cを受け付けてしまうため、Pythonスクリプトが中断されてしまうのを防げない可能性があります。

Windowsの場合

たとえばWindowsでは、先のプログラムは実行できますが、次のようにCtrl-Cで中断できてしまいます。

Traceback (most recent call last):
  File "test.py", line 5, in ?
    time.sleep(15)
IOError: [Errno 4] Interrupted function call

厳密に言えばCtrl-Cで中断したのではなく、システムコールが中断したためIOError例外が発生して中断したということです。このIOError例外をトラップして再度処理をやりなおす(このプログラムであればsleep(15)を呼び出す)対策もありますが、たとえば「多数のファイルを保存中にCtrl-Cで中断したくない」というケースを考えると、Ctrl-Cを押したら再度最初のファイルから書き込みをやり直すことになってしまい、あまり好ましい対策ではありません。
結局Windowsの場合、シグナルを使わず、次のようにイベントハンドラを設定してCtrl-Cを無視する方法が適しています。ただしこれはpywin32が必要です。

import win32api
import win32con

def consoleCtrlHandler(ctrlType):
    if ctrlType == win32con.CTRL_C_EVENT:
        return 1
    return 0

win32api.SetConsoleCtrlHandler(consoleCtrlHandler, True)

もしCtrl-Breakによる中断も防ぎたい場合は、条件式の部分を

ctrlType in (win32con.CTRL_C_EVENT, win32con.CTRL_BREAK_EVENT)

のようにすればいいでしょう。