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 切片和range()用法说明
Mar 24 Python
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
python实现多线程抓取知乎用户
Dec 12 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python设置环境变量的作用和实例
Jul 09 Python
python hashlib加密实现代码
Oct 17 Python
Python笔记之facade模式
Nov 20 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 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实现获取文件后缀名的几种常用方法
2015/08/08 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
python中偏函数partial用法实例分析
2015/07/08 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
师范院校学生自荐信范文
2013/12/27 职场文书
保护环境建议书
2014/03/12 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
岗位说明书标准范本
2014/07/30 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
小学数学教师研修日志
2015/11/13 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
Python 如何解决稀疏矩阵运算
2021/05/26 Python
redis复制有可能碰到的问题汇总
2022/04/03 Redis