Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 23, 2016 16:57:45

SaintAlex
Зарегистрирован: 2016-10-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать аналог неканонического ввода?

Как в питоне считать посимвольно с stdin, но при этом ввод производится не с клавиатуры, печатает другой процесс. Ввод прекращается, когда будет введена определённая комбинация символов, до этого всё должно быть записано в строку.

Офлайн

#2 Окт. 23, 2016 17:51:24

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Как сделать аналог неканонического ввода?

поищите по форуму “печатная машинка”



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Окт. 23, 2016 18:02:03

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

Как сделать аналог неканонического ввода?

Считываешь полностью, в цикле уже посимвольно смотришь или используешь разрез и метод строк index() или find(). Приложению без разницы кто/что вводит и откуда.

Офлайн

#4 Окт. 23, 2016 18:57:52

SaintAlex
Зарегистрирован: 2016-10-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать аналог неканонического ввода?

ок, другой вопрос
Моя программа запускается inetd, который слушает 80 порт. При подключении браузера к localhost:80 селект срабатывает, но stdin всё равно блочится, почему? Считывает только после закрытия браузера. И отправляет правильный ответ http сервера, но уже в пустоту

 ready, _, _ = select.select(ins, [], [], 20)
	if sys.stdin in ready:
		while True:
			req += sys.stdin.buffer.read(1)
			if b'\r\n\r\n' in req:
				break

Отредактировано SaintAlex (Окт. 23, 2016 19:19:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version