Python 3.9 keyboard.record()

Возник вопрос:

В модуле keyboard имеется функция записи действий с клавиатуры (start_recording - stop_recording), по окончании записи данные представляются в типе list и их можно записать в переменную.

Вопрос в том, как бы записать эти данные с записи в файл, да так чтоб при открытии в следующий раз list сохранился для чтения модулем keyboard (функция: play()). Или же имеются способы по восстановлению list из строки?...

import keyboard,json
#нажмите k для активации записи клавиш с клавиатуры пк
keyboard.wait('k')
keyboard.start_recording()
keyboard.wait('l')
a=keyboard.stop_recording()
# здесь тип переменной a list
with open('name.txt','w') as f:
    f.write(str(a))
with open('name.txt','r') as f:
    b = f.read(json.loads(f.read()))
#при присваивании b ошибка.

keyboard устанавливается на win: pip install keyboard.


Ответы (1 шт):

Автор решения: eri

допустим

events = [keyboard.KeyboardEvent(0,0)]

тогда можно сохранить как

with open('list.txt', 'w', encoding='utf-8') as f:
    f.writelines( [ ke.to_json()+'\n' for ke in events ] )

прочитать обратно

import json

with open('list.txt', 'r', encoding='utf-8') as f:
    events = [ keyboard.KeyboardEvent(**json.loads(js)) for js in f.readlines()]
→ Ссылка