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实现简单HTML表格解析的方法
Jun 15 Python
python解决网站的反爬虫策略总结
Oct 26 Python
python2 与python3的print区别小结
Jan 16 Python
TensorFlow高效读取数据的方法示例
Feb 06 Python
python获取当前目录路径和上级路径的实例
Apr 26 Python
ipad上运行python的方法步骤
Oct 12 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
Python的pygame安装教程详解
Feb 10 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
python实现扑克牌交互式界面发牌程序
Apr 22 Python
keras 多gpu并行运行案例
Jun 10 Python
Django框架安装及项目创建过程解析
Sep 14 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动态生成静态HTML网页的代码
2010/03/04 PHP
php实现mysql封装类示例
2014/05/07 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
python先序遍历二叉树问题
2017/11/10 Python
Django配置文件代码说明
2019/12/04 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
python获取引用对象的个数方式
2019/12/20 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
中科前程Java笔试题
2016/11/20 面试题
会议邀请函范文
2014/01/09 职场文书
小学生元旦感言
2014/02/26 职场文书
债务授权委托书范本
2014/10/17 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
2014年英语工作总结
2014/12/20 职场文书