python实现电脑自动关机


Posted in Python onJune 20, 2018

0、前言

在以前读书的时候,实验室里面要求每天都要关电脑,有时候出去玩得晚了,懒得回实验室关电脑,又没有同学帮忙。于是就想,能不能通过什么手段实现远程关闭电脑。在网上搜索一番后,决定用 python + email,实现远程关闭电脑。

1、准备

python: 3.5.2 email:163邮箱 system:Win10
安装依赖包email:在python安装目录下/Scripts下执行:pip install email
设置163邮箱的POP3/SMTP服务 : 登录163邮箱 ?> 设置 ?> POP3/SMTP/IMAP ?> 勾选POP3/SMTP服务

2、说明

执行py程序后,程序将每隔10分钟(时间可以自己设置)读取一次邮箱最新邮件,解析获得邮件主题,当主题为“关机”时,程序将关闭电脑,为“重启”时,将重启电脑。在长时间离开电脑时,可以将py程序跑起来,如果需要关机或重启,可以向邮箱发一封邮件即可

3、代码

# -*- coding:utf-8 -*-
import os
import time
import poplib
import email
from email.header import decode_header
#========================================
# 读取Email,获取Email主题
#========================================
def getEmailSubject():
  read = poplib.POP3('pop.163.com')
  read.user('xxx@163.com')# 163邮箱用户名
  read.pass_('xxx')    # 163邮箱设置中的客户端授权密码
  allEmails = read.stat() # 读取邮件信息
  topEmail = read.top(allEmails[0], 0) # 获取最新的一封邮件
  tmp = []
  # 解码邮件,存入tmp
  for s in topEmail[1]:
    try:
      tmp.append(s.decode())
    except:
      try:
        tmp.append(s.decode('gbk'))
      except:
        tmp.append(s.decode('big5'))
  message = email.message_from_string('\n'.join(tmp))
  # 获取邮件主题
  subject = decode_header(message['Subject'])
  if subject[0][1]:
    subjectDecode = subject[0][0].decode(subject[0][1])
  else:
    subjectDecode = subject[0][0]
  return subjectDecode
#=========================================
# 检查Email的主题
#=========================================
def checkEmailSubject():  
  while True:
    subject = getEmailSubject()  
    print('check subject ...')
    print('subject is ' + subject)
    if subject == '重启':
      os.system('shutdown -r -t 3')
      break    
    if subject == '关机':
      os.system('shutdown -s -t 3')
      break
    time.sleep(600) # 每10分钟检查一次

if __name__ == '__main__':
  checkEmailSubject()

4、结束语

不过自打我工作半年来,一共也就只关过3、4次电脑

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
最基础的Python的socket编程入门教程
Apr 23 Python
Python制作数据导入导出工具
Jul 31 Python
pyqt5简介及安装方法介绍
Jan 31 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
flask中过滤器的使用详解
Aug 01 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
使用pytorch实现可视化中间层的结果
Dec 30 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
Python Flask实现进度条
May 11 Python
python3将视频流保存为本地视频文件
Jun 20 #Python
Python操作MySQL数据库的方法
Jun 20 #Python
python实现抖音视频批量下载
Jun 20 #Python
Python 类的特殊成员解析
Jun 20 #Python
python实现音乐下载的统计
Jun 20 #Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 #Python
python基于http下载视频或音频
Jun 20 #Python
You might like
php中http_build_query 的一个问题
2012/03/25 PHP
php上传图片类及用法示例
2016/05/11 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
请介绍一下WSDL的文档结构
2013/03/17 面试题
初中生物教学反思
2014/01/10 职场文书
水利学院求职自荐书
2014/02/01 职场文书
怎么写自荐书范文
2014/02/12 职场文书
出国留学计划书
2014/04/27 职场文书
离婚财产分割协议书
2015/08/11 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
react国际化react-intl的使用
2021/05/06 Javascript
React配置子路由的实现
2021/06/03 Javascript
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL