#python #keystroke
#python #нажатие клавиш
Вопрос:
Я написал простую программу, которая записывает данные о нажатиях клавиш. Я создал две функции (on_Press и on_release), я хочу записывать все записанные данные о нажатиях клавиш из on_press() amp; on_release() в новый файл Excel каждый раз при нажатии клавиши enter.
Но после выполнения приведенного ниже кода программа записывает только данные клавиши «Enter» и игнорирует остальные.
Какие-нибудь идеи, пожалуйста?
Спасибо
from pynput.keyboard import Key, Listener
from datetime import datetime
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
key_pressed = [0]
key_press_time = [0]
key_released = [0]
key_release_time = [0]
def on_press(key):
global key_pressed, key_press_time, key_released, key_release_time
key_pressed = key
key_press_time = datetime.utcnow().strftime('%M:%S.%f')
return key_pressed, key_press_time
def on_release(key):
global key_pressed, key_press_time, key_released, key_release_time
key_released = key
key_release_time = datetime.utcnow().strftime('%M:%S.%f')
key_dict = {'Key_Pressed':[key_pressed],
'Key_Press_Time':[key_press_time],
'Key_Released':[key_released],
'Key_Release_Time':[key_release_time]}
kd = pd.DataFrame(key_dict)
print(kd)
if key == Key.enter:
writer = ExcelWriter('KeystrokeData.xlsx')
kd.to_excel(writer,'Sheet1',index=False)
writer.save()
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
Комментарии:
1. В чем проблема? Просто запишите их.
2. Я написал это, используя ; writer = ExcelWriter(‘KeystrokeData.xlsx ‘) kd.to_excel(writer,’Sheet1’,index=False) writer.save() Но он сохраняет только атрибут клавиши enter и игнорирует остальные