@lbvfckren

Как сделать запись символов в файл?

Здравствуйте, пытаюсь сделать так, чтобы после нажатия какой-либо клавиши это сразу записывалось в текстовый файл
Пробовал так:
import keyboard

x = open('test.txt','a')
def print_pressed_keys(e):
x.write(str(e.name))
print(e.name)

keyboard.hook(print_pressed_keys)
keyboard.wait()
Файл остаётся пустым, но нажатие проходит и его выводит принт. Подскажите что сделать.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 3
SoreMix
@SoreMix Куратор тега Python
yellow
Потому что файл не закрылся -> не сохранился.

def print_pressed_keys(e):
    with open('test.txt', 'a') as f:
        f.write(str(e.name))
    print(e.name)
Ответ написан
Для оптимизации ввода-вывода происходит кеширование при записи.
Кеш сохраняется на диск при закрытии файла.

Если необходимо записать содержимое на диск до закрытия файла, следует вызвать метод x.flush()
Ответ написан
Комментировать
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Файл нужно закрыть:
try:
	keyboard.hook(print_pressed_keys)
	keyboard.wait()
except KeyboardInterrupt:
	x.close()

Или можно открыть файл с помощью контекстного менеджера with.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы