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返回昨天日期的方法
May 13 Python
Python循环语句中else的用法总结
Sep 11 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
Python subprocess模块详细解读
Jan 29 Python
python检索特定内容的文本文件实例
Jun 05 Python
Flask实现跨域请求的处理方法
Sep 27 Python
Python元组知识点总结
Feb 18 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
Python2 与Python3的版本区别实例分析
Mar 30 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
1.PHP简介
2006/10/09 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
php单链表实现代码分享
2016/07/04 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
类似框架的js代码
2006/11/09 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
python scatter函数用法实例详解
2020/02/11 Python
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
银行柜员应聘推荐信范文
2013/11/24 职场文书
记者岗位职责
2014/01/06 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
委托书范本
2014/04/02 职场文书
技术合作协议书范本
2014/04/18 职场文书
村委会换届选举方案
2014/05/03 职场文书
交通工程专业推荐信
2014/09/06 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
永远是春天观后感
2015/06/12 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
2019年工作总结范文
2019/05/21 职场文书