Могу ли я запретить печать «^Z» при обработке SIGTSTP (Ctrl-Z) в своей программе?Python

Программы на Python
Ответить
Anonymous
 Могу ли я запретить печать «^Z» при обработке SIGTSTP (Ctrl-Z) в своей программе?

Сообщение Anonymous »

В Linux мне нужно распечатать статус терминальной программы, когда пользователь нажимает какую-либо горячую клавишу на клавиатуре.
Поскольку Ctrl+T недоступен в Linux (он доступен только в BSD), я решил вместо этого использовать Ctrl+Z.
Я обрабатывать сигнал SIGTSTP в моей программе, и она работает нормально.
Одним побочным эффектом является то, что символы ^Z появляются, когда пользователь нажимает Ctrl+Z.
Можно ли устранить распечатку ^Z?

В качестве конкретного примера рассмотрим следующее программа:

Код: Выделить всё

#!/usr/bin/env python
import signal, sys, time

def deliberately_no_stop(*args):
print('Status printout', file=sys.stderr)

signal.signal(signal.SIGTSTP, deliberately_no_stop)
time.sleep(5)
При запуске из интерактивной консоли и двойном нажатии Ctrl+Z фактическое содержимое, выводимое на терминал:
p>

Код: Выделить всё

^ZStatus printout
^ZStatus printout
... тогда как я хочу, чтобы так было:

Код: Выделить всё

Status printout
Status printout
Как добиться такого эффекта?


Подробнее здесь: https://stackoverflow.com/questions/791 ... n-my-progr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»