Python: parando script com CTRL-C no Windows
Ao rodar um script python no Windows é preciso os recursos do módulo win32api para conseguir parar a execução digitando CTRL-C. O pywin32, que provê o módulo win32api para o Python, pode ser obtido no sourceforge.net pelo link: http://sourceforge.net/projects/pywin32/files/
No Linux, quem faz isso é o os.kill(pid) e funciona de maneira nativa.
Segue um exemplo de código:
Código Python:
import win32api
import os
import time
# Obtem o numero do processo PID
process = os.getpid()
# mostra ele na tela (so pra saber)
print "Processo rodando sob PID %d" % process
# Chama um handle para o script
handle = win32api.OpenProcess(1, False, process)
# Aqui vai o resto das funcoes do script
# como exemplo um loop infinito que fica
# imprimindo Linux RLZ na tela
def LoopPrint():
while 1:
print “Linux RLZ – CTRL-C para sair.”
time.sleep(.5)
if __name__==’__main__’:
try:
LoopPrint()
except KeyboardInterrupt:
win32api.TerminateProcess(handle, -1)
win32api.CloseHandle(handle)
Referência:
http://www.python.org/doc/faq/windows/#id10
Deixe um comentário