[python] sigint
Hynek Fabian
hynek.fabian na firma.seznam.cz
Úterý Leden 25 19:45:27 CET 2011
V *nixu emulator terminalu pri zavirani posle SIGHUP
Defaultni akce je ukonceni procesu coz by v pythonu melo
vystrelit vyjimku SystemExit (IMO, nezkousel jsem to)
geon na post.cz (Tuesday 25 January 2011 19:15:12):
> Díky, funguje. A dá se ve win odchytit i zavření okna, kde běží
> pythonovský script?
>
> Hynek Fabian napsal(a), dne 25.1.2011 11:36:
> > ^C ma defaultni handler, odchyt vyjimku KeyboardInterrupt.
> > Btw delat v kontextu signal handleru blokujici operace neni moc dobrej
> > napad.
> >
> > geon na post.cz (Tuesday 25 January 2011 06:37:51):
> >> Ahoj,
> >>
> >> v jedné části programu kopíruji soubory (obvykle velké) a chci mít
> >> zajištěno, že když dám ctrl+c tak že v cíli nezbude jen část souboru -
> >> chci zajistit jeho smazání přes odchycení sigint:
> >>
> >> def signal_handler(signal, frame):
> >> print 'You pressed Ctrl+C!'
> >> print dest
> >>
> >> if os.path.isdir(item):
> >> shutil.rmtree(dest)
> >>
> >> if os.path.isfile(item):
> >> os. remove(dest)
> >>
> >> sys.exit(0)
> >>
> >> signal.signal(signal.SIGINT, signal_handler)
> >>
> >> toto ale nefunguje, protože cíl je asi stále otevřen původním procesem
> >> kopírování. Díky za rady jak z toho ven.
> >>
> >> You pressed Ctrl+C!
> >> xyz.mkv
> >>
> >> Traceback (most recent call last):
> >> File "D:\Zaloha\W7610034.py", line 48, in <module>
> >>
> >> shutil.copy(item, dest)
> >>
> >> File "C:\prg\Python26\lib\shutil.py", line 88, in copy
> >>
> >> copyfile(src, dst)
> >>
> >> File "C:\prg\Python26\lib\shutil.py", line 54, in copyfile
> >>
> >> copyfileobj(fsrc, fdst)
> >>
> >> File "C:\prg\Python26\lib\shutil.py", line 30, in copyfileobj
> >>
> >> fdst.write(buf)
> >>
> >> File "D:\Zaloha\W7610034.py", line 11, in signal_handler
> >>
> >> os. remove(dest)
> >>
> >> WindowsError: [Error 32] Proces nemß p°Ýstup k souboru, neboŁ jej prßvý
> >> vyu×Ývß
> >> jinř proces: 'xyz.mkv'
> >>
> >>
> >>
> >> xpsp3, py2.x
> >>
> >> Díky
> >> geon
> >> Pavel Kosina
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Python mailing list
> >> Python na py.cz
> >> http://www.py.cz/mailman/listinfo/python
> >
> > _______________________________________________
> > Python mailing list
> > Python na py.cz
> > http://www.py.cz/mailman/listinfo/python
Další informace o konferenci Python