Как записать данные о нажатиях клавиш в файл Excel на python?

#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 и игнорирует остальные