Найти - Пользователи
Полная версия: Ограничение времни ввода
Начало » Python для новичков » Ограничение времни ввода
1
dunstan
Господа, наверное странный вопрос, но всё-же: Существует ли в Python гуманный способ ограничить время ввода данных, например пароля, в командной строке?
FishHook
без асинхронщины/параллельщины не выйдет
PEHDOM
dunstan
Существует ли в Python гуманный способ ограничить время ввода данных, например пароля, в командной строке?
какая ОС? Под линуксом можно через signal или select, https://stackoverflow.com/questions/1335507/keyboard-input-with-timeout-in-python
под вендой нужна “асинхронщина/параллельщина” как выразился FishHook
dunstan
PEHDOM
Писано под виндовс, на чём работать будет, неизвестно (мне). Вообще вопрос чисто теоретический - попалась на телекурсах задачка по массированному вводу и там типо инпут зациклен, а по окончании ввода, кино должно продолжиться - всякая обработка там и прочее. Я по незнанию предмета давай таймеры пытаться городить, потом интернеты рыть. И не нашёл другого способа, кроме как один процесс/поток должен прибить другого. Но это богопротивное прибивание противоречит не только “пайтон вей”, но и всем самым светлым идеалам линукса. С тех пор лишился сна, всё думаю, как так, должен же быть выход…
Может не понял чего по дикости, извиняйте.
Кстати в задачке это всё не нужно было, они там ввод приканчивали не то Ctrl+Z, не то похожее что-то, вобщем никакой асинхронщины не предполагалось.
doza_and
Немного оффтопик.
Асинхронщина и питонвей на другой штрассе находятся. Если вам нужен интерфейс с пользователем то делается GUI (Tk,wx,Qt…). А там запустить таймер и закрыть диалог или программу по событию вполне обычно и python way. Ну да это не консоль. Для консоли самопроизвольное выпадание богопротивно и будет дико раздражать пользователей. Это даже не про питон а про консоль вопрос.

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

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

:) Так что спите спокойно дорогой товарищ.
dunstan
doza_and
“Может вы чего попутали?”
Пожалуй что так, уважаемый, видимо проблема в излишней теоретичности вопроса, нужно конкретизировать, а там и решение замаячит.
Спасибо всем, принявшим участие! Пойду посплю.
PEHDOM
dunstan
С тех пор лишился сна, всё думаю, как так, должен же быть выход…
ну смотрите есть конечно выход и без асинхронщины\паралельщины но они очень сильно завязаны на то в какой ОС оно используеться, про линукс я уже давал выше ссылку, под венду я нашел вот такой забавный снипет: https://gist.github.com/atupal/5865214#file-msvcrt_input-py
он конечно сырой и его нужно допиливать:
- добавить обработку бекспейса
- заменить getche() на getwche() хотя тут смотрите сами
- добавить обработку Cntrl-C например ..
- добавить вывод промпта.
- ХЗ может еще что всплывет
но вобщем оно работает без всякой паралельщины и вполне себе имеет право на жисть…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB