Из действительно очень хорошего блога на PostgreSQL, но этой темы применимо в целом:
Удобные в сопровождении запросы - моя точка зрения (depesz.com)
... Я решил что мои приоритеты для записи удобных в сопровождении запросов:
Избегают бесполезного ввода.
Использование искажает для таблиц/представлений. Всегда. И сделайте их разумными псевдонимами.
Форматируют код в некотором роде.
Избегают цитат (да, это - то, почему я ненавижу Django)
синтаксис соединения Использования
, я действительно соглашаюсь с капитализацией зарезервированных слов и любого идентификатора, кроме моего собственного.
В Windows нет сигналов, поэтому вы не можете использовать модуль сигналов. Однако вы все равно можете перехватить исключение KeyboardInterrupt при нажатии Ctrl-C.
Что-то вроде этого должно вас подтолкнуть:
import subprocess
try:
child = subprocess.Popen(blah)
child.wait()
except KeyboardInterrupt:
child.terminate()
Объекты subprocess.Popen поставляются с методом kill и terminate (отличается от того, какой сигнал вы отправляете процессу).
signal.signal позволяет вам устанавливать обработчики сигналов, в которых вы можете вызывать метод детского убийства.