При режиме записи 'w' данные некорректно записываются в файл
Режим записи 'a'
Код:
def print_pressed_keys(e):
with open('key_records.txt', 'a', encoding='utf-8') as f:
f.write(f'{e.name, e.scan_code, e.event_type, }\n')
keyboard.hook(print_pressed_keys)
keyboard.wait('Ctrl+Shift')
Ввод:mmmmmmmmmqqqqqq
В файле:
('m', 50, 'down')
('m', 50, 'up')
('m', 50, 'down')
('m', 50, 'up')
('m', 50, 'down')
('m', 50, 'up')
и т.д.
Режим записи 'w'
Код:
def print_pressed_keys(e):
with open('key_records.txt', 'w', encoding='utf-8') as f:
f.write(f'{e.name, e.scan_code, e.event_type, }\n')
keyboard.hook(print_pressed_keys)
keyboard.wait('Ctrl+Shift')
Ввод:qwqwqwa
В файле ('a', 30, 'up')**
Почему так происходит?
P.S Windows 7
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
При открытии файла в режиме 'w' создается новый файл или очищается существующий. Поэтому каждый раз когда вы нажимаете на кнопку у вас старое содержимое стирается, после закрытия файла остается информация только о последнем нажатии.
Подробнее см.: