Как ввести set с помощью клавиатуры Python
Обновлено: 21.11.2024
Python используется практически для всего. Используя Python, мы можем разрабатывать серверные части для веб-приложений, серверные части для мобильных приложений и API-интерфейсы, используя бесплатные платформы с открытым исходным кодом, такие как Django и Flask.
Более того, программы Python также создают эффективные модели машинного обучения с использованием надежных библиотек, таких как Keras , NumPy , Tensorflow и PyTorch , которые строят различные виды графиков с помощью Matplotlib и многих других.
В этой статье мы рассмотрим такие варианты использования Python. Мы научимся имитировать или управлять клавиатурой с помощью Python.
Мы поговорим о двух библиотеках Python с открытым исходным кодом, клавиатуре и PyAutoGUI, которые позволяют нам управлять нашей клавиатурой с помощью скриптов Python.
Имитация клавиатуры с помощью библиотеки клавиатуры в Python
Библиотека клавиатуры — это библиотека с открытым исходным кодом, позволяющая управлять вашей клавиатурой.
Эта библиотека может прослушивать и отправлять события клавиатуры, использовать горячие клавиши, поддерживать интернационализацию и обеспечивать поддержку мыши с помощью библиотеки мыши, которую мы можем загрузить с помощью pip install mouse или pip3 install mouse .
Чтобы установить библиотеку клавиатуры, используйте любую из следующих двух команд pip.
Давайте разберемся, как использовать эту библиотеку для управления клавиатурой. Обратитесь к следующему коду Python для простого примера ввода текста.
Перед запуском приведенного выше кода обратите внимание на текстовый курсор или знак вставки. Текст выше внутри поля вывода будет напечатан там автоматически.
Функция write() напечатает любую строку, переданную этой функции в качестве аргумента. Эта функция отправляет в операционную систему искусственные события клавиатуры, которые в дальнейшем набираются на знаке вставки.
Если какой-либо символ недоступен на клавиатуре, вместо него вводятся явные символы Unicode. Функция press_and_release() отправляет события операционной системы для выполнения горячих клавиш и ввода символов, переданных в качестве аргументов.
Чтобы узнать больше об этой библиотеке, обратитесь к ее документации здесь.
Имитация клавиатуры с помощью библиотеки PyAutoGUI в Python
Библиотека PyAutoGUI позволяет нам писать сценарии Python для управления клавиатурой и мышью.
Эта библиотека может перемещать курсор мыши и щелкать по окнам и приложениям, отправлять ключевые события для ввода символов и выполнения горячих клавиш, делать снимки экрана, перемещать, изменять размер, сворачивать, разворачивать и находить приложения на экране, а также отображать предупреждающие сообщения, и т. д.
Чтобы установить эту библиотеку, используйте одну из следующих команд.
В нашем случае мы можем использовать библиотеку PyAutoGUI. Для этого обратитесь к следующему коду.
Как мы видим, функция write() печатает символ строки, переданной в качестве аргумента в точке вставки. Эта функция может нажимать только односимвольные клавиши, такие как буквы алфавита и цифры.
Это означает, что мы не можем нажимать такие клавиши, как Shift, Ctrl, Command, Alt, Option, F1 и F3. Мы можем использовать методы keyDown() и keyUp() для нажатия таких клавиш.
Метод keyDown() нажимает клавишу и удерживает ее. И метод keyUp() освобождает удерживаемую клавишу.
В качестве примера см. следующий код Python. Не забудьте отметить положение текстового курсора или курсора.
Чтобы нажимать такие клавиши, как Shift + F, мы также можем использовать метод press(). Эта функция будет нажимать любые клавиши, переданные в виде строки.
На самом деле эта функция является оболочкой для методов keyDown() и keyUp().
Чтобы узнать больше об этой библиотеке, обратитесь к ее документации здесь.
Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».
Статья по теме — Ввод Python
Статья по теме — ввод с клавиатуры Python
сообщить об этом объявлении
Синтаксис функции input():
Строка подсказки печатается на консоли, и пользователю предоставляется возможность ввести значение. Вы должны напечатать некоторую полезную информацию, чтобы помочь пользователю ввести ожидаемое значение.
Получение пользовательского ввода в Python
Вот простой пример получения пользовательского ввода и вывода его на консоль.
Вывод:
Ввод данных пользователем Python
Какой тип введенного пользователем значения?
Введенное пользователем значение всегда преобразуется в строку, а затем присваивается переменной. Давайте подтвердим это, используя функцию type() для получения типа входной переменной.
Вывод:
Как получить целое число в качестве ввода пользователя?
Невозможно получить целое число или любой другой тип в качестве пользовательского ввода.Однако мы можем использовать встроенные функции для преобразования введенной строки в целое число.
Вывод:
Целое число, введенное пользователем Python
Ввод данных пользователем Python и пример ошибки EOFError
Когда мы входим в EOF, функция input() вызывает ошибку EOFError и завершает работу программы. Давайте рассмотрим простой пример с использованием PyCharm IDE.
Вывод:
Пользовательский ввод Python вызывает ошибку EOFError
Пример выбора пользователем Python
Мы можем создать интеллектуальную систему, предоставив пользователю выбор и принимая во внимание вводимые им данные для продолжения выбора.
Вот пример вывода выполнения вышеуказанной программы.
Выбор пользовательского ввода Python
Кратко о функции Python raw_input()
Функция raw_input() использовалась для ввода данных пользователем в версиях Python 2.x. Вот простой пример интерпретатора командной строки Python 2.7, показывающий использование функции raw_input().
Эта функция устарела и удалена из Python 3. Если вы все еще используете версии Python 2.x, рекомендуется перейти на версии Python 3.x.
Заключение
В Python очень легко получить пользовательский ввод из функции input(). В основном он используется, чтобы предоставить пользователю выбор операции, а затем соответствующим образом изменить ход программы.
Однако программа бесконечно ожидает ввода данных пользователем. Было бы неплохо иметь некоторое время ожидания и значение по умолчанию на случай, если пользователь не введет значение вовремя.
Python — один из наиболее подходящих языков для автоматизации задач. Будь то повторяемый (этичный) просмотр веб-страниц через некоторое время, запуск некоторых программ при запуске компьютера или автоматическая отправка обычных электронных писем, в Python есть множество модулей, которые облегчают вашу жизнь.< /p>
Одним из них является модуль под названием клавиатура, который полностью контролирует вашу клавиатуру. С помощью этого модуля вы можете печатать что угодно, создавать горячие клавиши, создавать сокращения, блокировать клавиатуру, ждать ввода и т. д.
В этом руководстве мы рассмотрим, как настроить и использовать модуль клавиатуры в Python.
Примечание. Приложения, работающие с автоматизацией процессов, подобных человеческим, должны разрабатываться этично и ответственно. Клавиатурный модуль сделан так, чтобы его можно было легко наблюдать, и поэтому он обескураживает и прозрачен, если кто-то использует его для создания кейлоггеров или вредоносных ботов.
Установка модуля клавиатура
Примечание. В этом руководстве используется версия Python 3.8. Однако модуль клавиатуры может работать как с Python 2.x, так и с Python 3.x.
Если вы используете Linux, чтобы использовать эту библиотеку, вы должны установить ее как root. Если вы этого не сделаете, вы получите:
Кроме того, при запуске скрипта вы должны запускать его с привилегиями суперпользователя:
В Windows и MacOS, так как привилегии работают по-разному - можно просто установить через pip и запустить скрипты:
Примечание. Для MacOS вам может потребоваться разрешить Терминалу или другим приложениям изменять состояние вашего компьютера, например, путем ввода. Также имейте в виду, что по состоянию на сентябрь 2021 года библиотека по-прежнему находится в экспериментальном состоянии на MacOS.
Функции модуля клавиатура
В этом модуле есть множество функций, которые можно использовать для имитации действий клавиатуры.
- keyboard.write(message, [delay]) — записывает сообщение с задержкой или без нее.
- keyboard.wait(key) — блокирует программу до тех пор, пока не будет нажата клавиша. Ключ передается в виде строки ('пробел', 'esc' и т. д.)
- keyboard.press(key) – нажимает клавишу и удерживает до тех пор, пока не будет вызвана функция отпускания(key).
- keyboard.release(key) — отпускает клавишу.
- keyboard.send(key) — нажимает и отпускает клавишу.
- keyboard.add_hotkey(hotkey, function) — создает горячую клавишу, при нажатии которой выполняется функция.
- keyboard.record(key) — записывает действия клавиатуры до тех пор, пока не будет нажата клавиша.
- keyboard.play(recorded_events, [speed_factor]) — воспроизводит события, записанные с помощью функции keyboard.record(key), с необязательным параметром speed_factor .
Однако мы рассмотрим все это, вот краткий пример:
Сообщение Hello появляется на экране в терминале, как будто вы его написали.Вы можете очень легко автоматизировать команду и создать для нее псевдоним горячей клавиши. Вот (грубый) пример выхода из Python REPL, написания команды curl и ее выполнения:
Функцииклавиатуры write() и wait()
Команда write() записывает сообщение, как мы видели ранее, с необязательной задержкой в начале. Если задержка не установлена, запись выполняется мгновенно. Это очень хорошо сочетается с функцией wait(), которая ожидает нажатия определенной клавиши.
Например, мы можем создать импровизированный макрос, привязанный, скажем, к 1 , который отвечает на этот ввод новым сообщением. Обратите внимание, что вместо этого есть реальный способ создания горячих клавиш, который мы рассмотрим позже.
Мы создадим бесконечный цикл True для проверки нажатия клавиши, и вы сможете запустить скрипт в фоновом режиме:
Примечание. Эта функция не поддерживает специальные символы, поэтому, если вы добавите, например, ! - вы получите исключение StopIteration.
Функции клавиатуры press(), release()
Поскольку сложно смоделировать нажатия() и release() так, чтобы действия были видны, мы также увидим в действии функции record() и play().
Функция press() нажимает клавишу и отпускает ее, когда вы вызываете release() для той же клавиши. Обратите внимание, что вы не можете какое-то время спать(), чтобы имитировать нажатие клавиши:
Бесплатная электронная книга: Git Essentials
Ознакомьтесь с нашим практическим руководством по изучению Git, включающим передовые практики, общепринятые стандарты и памятку. Перестаньте гуглить команды Git и на самом деле изучите их!
Однако вы можете удерживать некоторые специальные клавиши, например [SHIFT] или [CTRL], следующим образом:
Функции клавиатуры record() и play()
Не всегда нужно вводить новые клавиши — иногда вам нужно записать происходящее и воспроизвести его. Имейте в виду, что вам потребуются права администратора для записи любого подобного ввода, поскольку эту технологию можно легко использовать для создания кейлоггеров.
Функция record() принимает триггерную клавишу, пока которую она записывает, и возвращает последовательность событий типа KeyboardEvent . Затем вы можете добавить эту последовательность событий в функцию play(), которая точно воспроизведет их с необязательным аргументом speed_factor, который действует как множитель скорости исходных событий:
Если нам нужно распечатать файл records_events , он будет выглядеть примерно так:
Эффекты этих методов лучше всего видны в виде GIF или воссозданы на вашем компьютере. Например, последовательность написания сообщения, его удаления и написания вместо него другого:
функция клавиатуры send()
Функция send() сочетает в себе функции press() и release() и используется для отдельных клавиш, в отличие от write(), которая используется для целых предложений:
После нажатия s воспроизводятся клавиши w и a.
Функция press() также может принимать комбинации нажатых клавиш. Например, вы можете отправить комбинацию «ctrl+shift+s», и диалоговое окно для сохранения файла должно появиться, если вы находитесь в приложении, которое поддерживает эту операцию:
Однако это неправильный способ добавления горячих клавиш. Вместо этого вы можете использовать функцию add_hotkey().
Функция add_abbreviation() клавиатуры
Функция add_abbreviation() очень удобна, так как позволяет определять сокращения для длинных входных данных и заменяет сокращенные версии сохраненными полными версиями.
Например, подобно тому, как такие сервисы, как Google, сохраняют вашу электронную почту для большинства форм ввода, вы можете создать собственное сокращение и активировать его с помощью [ПРОБЕЛ]:
Если во время работы вы наберете @, а затем [ПРОБЕЛ], ввод полной формы заменит набранный @.
Функция add_hotkey() клавиатуры
Функция add_hotkey() принимает горячую клавишу, которую вы хотите сохранить, или комбинацию клавиш и функцию. Здесь легко передать анонимные лямбда-функции, хотя вы также можете добавить именованные функции.
Например, давайте добавим горячую клавишу для CTRL+j , которая запускает лямбда-функцию, которая регистрирует это:
Горячая клавиша ctrl+alt+p сохраняется, и при нажатии этой комбинации вы должны увидеть вывод лямбда-выражения.
Заключение
Модуль клавиатуры — это легкая и простая библиотека, используемая для имитации нажатия клавиш и простой автоматизации в Python. Он не очень многофункциональный, но его можно использовать для автоматизации некоторых задач, которые вы можете выполнять в повседневной работе, или просто для развлечения.
В качестве альтернативы можно использовать более зрелый и мощный модуль — pynput.
Если это так, вы можете достичь этой цели с помощью библиотеки PyAutoGUI.
Вы можете установить библиотеку PyAutoGUI с помощью приведенной ниже команды (в Windows):
В этом руководстве вы увидите 4 сценария, которые описывают, как:
- Введите символы с помощью функции write()
- Нажимайте горячие клавиши с помощью функции hotkey()
- Нажимайте клавиши клавиатуры с помощью функции press()
- Откройте текстовый файл и введите текст
4 сценария управления клавиатурой с помощью Python
Сценарий 1. Введите символы с помощью функции write()
Вы можете использовать функцию write() для ввода символов.
Например, приведенный ниже синтаксис можно использовать для ввода «Привет!»:
Запустите код на Python, и вы получите фразу «Привет!»:
Вы можете пойти дальше, добавив задержку после ввода каждого символа.
Например, добавим задержку в 0,5 секунды (путем добавления интервала = 0,5) после ввода каждого символа:
После запуска кода вы заметите задержку в 0,5 секунды после каждого символа.
Сценарий 2. Нажимайте горячие клавиши с помощью функции hotkey()
Вы можете использовать функцию hotkey() для горячих клавиш или сочетаний клавиш.
Например, если вы используете Windows, вы можете использовать ctrl + esc, чтобы открыть меню "Пуск" Windows:
После запуска кода вы получите меню "Пуск" Windows.
Вы можете проверить документацию PyAutoGUI для KEYBOARD_KEYS, которые вы можете использовать.
Сценарий 3. Нажимайте клавиши клавиатуры с помощью функции press()
Для этого сценария вы увидите, как использовать функцию press() для нажатия клавиши pagedown 3 раза.
Запустив код, щелкните в веб-браузере, и вы увидите, как веб-страница прокручивается вниз.
Добавлена временная задержка в 3 секунды, чтобы у вас было достаточно времени, чтобы щелкнуть мышью в веб-браузере.
Вот полный код:
После того, как вы запустите код на Python, а затем сразу же щелкнете по своей веб-странице, вы заметите, что веб-страница переместится вниз.
Кроме того, вы можете добиться тех же результатов (нажав клавишу pagedown 3 раза), установив presses=3:
Или с помощью следующего кода:
Как и прежде, вы можете проверить документацию PyAutoGUI на наличие KEYBOARD_KEYS, которые вы можете использовать.
Сценарий 4. Откройте текстовый файл и введите текст
Для окончательного сценария вы увидите, как применить комбинацию всех рассмотренных ранее функций.
Для начала вам нужно создать пустой текстовый файл.
Например, я создал текстовый файл (с именем Example_File) на рабочем столе:
C:\Users\Ron\Desktop\Example_File.txt
Затем я применил приведенный ниже код, чтобы открыть текстовый файл (используя библиотеку os), а затем набрал фразу "Hello There" внутри текстового файла (обратите внимание, что вам нужно изменить путь, отражающий расположение текстового файла на вашем компьютере):
Вот результат, который вы получите:
Давайте пойдем дальше, выполнив следующие действия:
- Открытие текстового файла
- Ожидание 3 секунды
- Ввод фразы «Hello There» в текстовом файле (с небольшой задержкой в 0,1 секунды после ввода каждого символа)
- Нажатие клавиши Enter для начала новой строки в текстовом файле
- Введите «Что такое погода?» в новой строке (с такой же задержкой в 0,1 секунды на символ)
- Закрытие текстового файла с помощью сочетания клавиш alt+f4
- Сохранение файла нажатием клавиши Enter
Вот полный код (как и раньше, вам нужно будет изменить путь, чтобы он отражал расположение текстового файла на вашем компьютере):
После того как вы запустите код, вы увидите эти фразы при открытии текстового файла:
Если вы хотите узнать, как управлять мышью с помощью Python, вы можете просмотреть следующий учебник.
Читайте также: