Так что я немного поэкспериментировал с пакетом pynput и заметил, что могу создать из него временный кейлоггер. Я понял это, но теперь я борюсь с чем-то другим в отношении экспорта нажатий клавиш в файл .txt. Python 2.7.15
Что я в основном хочу сделать, так это отформатировать вывод нажатия клавиш, чтобы распознавать, когда нажата клавиша = «backspace», чтобы удалить экспортированный символ до нажатия клавиши «backspace».
from pynput.keyboard import Listener
def write_to_file(key):
letter = str(key)
# letter = letter.replace("u'","") not important
# letter = letter.replace("'", "") not important
if letter == "Key.backspace":
letter = " backspace "
# delete the previous charater and move on with the logging
with open("log.txt", 'a') as f:
f.write(letter)
with Listener(on_press = write_to_file) as lis:
lis.join()
во время работы кейлоггера он записывает каждое нажатие клавиши в указанный файл log.txt
пример: www.googlle_backspace__backspace.com
Я, по-видимому, сделал ошибку, написав два l во время посещения Google, я нажимал клавишу Backspace 2 раза, чтобы мой ввод в строке поиска был "www.googl"
Теперь я хочу отформатировать это в файле log.txt, чтобы он каким-то образом идентифицировал строку " backspace " и удалил символ перед " backspace ".
текущий log.txt
"www.googlle_backspace__backspace_e.com"
ожидаемый log.txt
"www.google.com"
Я знаю, что это как-то связано с регулярным выражением или "re", но я не могу с этим разобраться.
Я думал о регистрации строки " backspace " и отправке запроса на удаление, чтобы удалить последний символ в log.txt, но я не знаю, как это сделать.
что-то вроде:
if letter == "_backspace_":
# delete string "_backspace_" and one character before it.
другой пример:
log.txt
"My name is Jeff, I am 22_backspace_3 years old"
expected_log.txt
"My My name is Jeff, I am 23 years old"