Удаление последнего введенного символа в текстовый файл на основе появления строки «xyz» в текстовом файле - PullRequest
0 голосов
/ 13 января 2019

Так что я немного поэкспериментировал с пакетом 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"

1 Ответ

0 голосов
/ 13 января 2019

Вы можете прочитать текущее содержимое файла, а затем, если символ является пробелом, удалить последний символ, в противном случае добавить новый символ в существующую строку и записать в файл. Не знаю, почему вы делаете кейлоггер.

...