Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2019 10:48:08

dunstan
Зарегистрирован: 2019-02-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ограничение времни ввода

Господа, наверное странный вопрос, но всё-же: Существует ли в Python гуманный способ ограничить время ввода данных, например пароля, в командной строке?

Офлайн

#2 Фев. 19, 2019 12:30:55

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ограничение времни ввода

без асинхронщины/параллельщины не выйдет



Офлайн

#3 Фев. 19, 2019 12:45:19

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Ограничение времни ввода

dunstan
Существует ли в Python гуманный способ ограничить время ввода данных, например пароля, в командной строке?
какая ОС? Под линуксом можно через signal или select, https://stackoverflow.com/questions/1335507/keyboard-input-with-timeout-in-python
под вендой нужна “асинхронщина/параллельщина” как выразился FishHook



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 19, 2019 12:45:38)

Офлайн

#4 Фев. 19, 2019 18:38:34

dunstan
Зарегистрирован: 2019-02-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ограничение времни ввода

PEHDOM
Писано под виндовс, на чём работать будет, неизвестно (мне). Вообще вопрос чисто теоретический - попалась на телекурсах задачка по массированному вводу и там типо инпут зациклен, а по окончании ввода, кино должно продолжиться - всякая обработка там и прочее. Я по незнанию предмета давай таймеры пытаться городить, потом интернеты рыть. И не нашёл другого способа, кроме как один процесс/поток должен прибить другого. Но это богопротивное прибивание противоречит не только “пайтон вей”, но и всем самым светлым идеалам линукса. С тех пор лишился сна, всё думаю, как так, должен же быть выход…
Может не понял чего по дикости, извиняйте.
Кстати в задачке это всё не нужно было, они там ввод приканчивали не то Ctrl+Z, не то похожее что-то, вобщем никакой асинхронщины не предполагалось.

Офлайн

#5 Фев. 20, 2019 07:07:56

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Ограничение времни ввода

Немного оффтопик.
Асинхронщина и питонвей на другой штрассе находятся. Если вам нужен интерфейс с пользователем то делается GUI (Tk,wx,Qt…). А там запустить таймер и закрыть диалог или программу по событию вполне обычно и python way. Ну да это не консоль. Для консоли самопроизвольное выпадание богопротивно и будет дико раздражать пользователей. Это даже не про питон а про консоль вопрос.

С точки зрения безопасности. Что вы скрываете? Какую программу пусканул пользователь? Он это знает. Если это другой чел пускал эта инфа все рано будет скрыта Когда комп уйдет в sleep с одной стороны. С другой стороны ее можно достать из history. Там ее тоже тереть? Да и ценности от нее никакой для взлома. Ограничивать число попыток, это да. Время между попытками ограничить??? Может быть. Но с этим никаких проблем у обычной консоли нет. Может вы чего попутали?

“А какого цвета в природе нет, так значит он и не нужен” Э. Сетон Томпсон “Маленькие дикари”

:) Так что спите спокойно дорогой товарищ.



Офлайн

#6 Фев. 20, 2019 11:39:40

dunstan
Зарегистрирован: 2019-02-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Ограничение времни ввода

doza_and
“Может вы чего попутали?”
Пожалуй что так, уважаемый, видимо проблема в излишней теоретичности вопроса, нужно конкретизировать, а там и решение замаячит.
Спасибо всем, принявшим участие! Пойду посплю.

Офлайн

#7 Фев. 20, 2019 13:52:29

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Ограничение времни ввода

dunstan
С тех пор лишился сна, всё думаю, как так, должен же быть выход…
ну смотрите есть конечно выход и без асинхронщины\паралельщины но они очень сильно завязаны на то в какой ОС оно используеться, про линукс я уже давал выше ссылку, под венду я нашел вот такой забавный снипет: https://gist.github.com/atupal/5865214#file-msvcrt_input-py
он конечно сырой и его нужно допиливать:
- добавить обработку бекспейса
- заменить getche() на getwche() хотя тут смотрите сами
- добавить обработку Cntrl-C например ..
- добавить вывод промпта.
- ХЗ может еще что всплывет
но вобщем оно работает без всякой паралельщины и вполне себе имеет право на жисть…



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 20, 2019 13:55:12)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version