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 相关文章推荐
python海龟绘图实例教程
Jul 24 Python
Python中生成器和yield语句的用法详解
Apr 17 Python
Python根据区号生成手机号码的方法
Jul 08 Python
python中set常用操作汇总
Jun 30 Python
python在非root权限下的安装方法
Jan 23 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
Python可迭代对象操作示例
May 07 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
Django model重写save方法及update踩坑详解
Jul 27 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 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创建、获取cookie及基础要点分析
2015/01/26 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
python opencv实现证件照换底功能
2019/08/19 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
什么是python类属性
2020/06/10 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
2014年人力资源工作总结
2014/11/19 职场文书
城南旧事电影观后感
2015/06/16 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
科普 | 业余无线电知识-波段篇
2022/02/18 无线电
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android
GPU服务器的多用户配置方法
2022/07/07 Servers