Сделать скрипт Python более отзывчивым к ctrl c?

1

Мы используем очень большую структуру сценариев python для автоматизации тестирования, и я действительно упускаю возможность убить запущенный скрипт python ctrl + c в некоторых ситуациях в Windows.

Когда сценарий может выполнять некоторую связь сокета с длинными тайм-аутами, единственными опциями иногда является уничтожение окна DOS. Есть ли какие-то варианты, которые я пропустил?

Теги:

2 ответа

2
Лучший ответ

Вместо использования блокирующих вызовов с длинными таймаутами используйте сетевые подключения, управляемые событиями. Это позволит вам никогда не иметь длительных периодов времени, выполняя непрерывные операции.

  • 0
    Вы имели в виду «непрерывный»? Не хочу вкладывать слова в рот. :)
  • 0
    Я унаследовал фреймворк (15-20 тыс. Строк кода), поэтому со временем я мог бы решить проблемы с тайм-аутами ... я больше искал какую-то волшебную комбинацию клавиш :)
Показать ещё 3 комментария
0

Найдите примеры:

try:
    some code
except:
    # catches all exceptions, including ^C

Изменить на:

try:
    some code
except Exception:
    # catches most exceptions, but not KeyboardInterrupt or SystemExit
  • 2
    Совершенно очевидно, что проблема заключается в блокировке вызовов, не позволяющих интерпретатору вызвать KeyboardInterrupt, а не перехватывать и игнорировать его.
  • 0
    Обратите внимание, что оба этих случая должны использоваться нелепо экономно, по крайней мере, если они не идут с голым raise .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню