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程序中操作文件之flush()方法的使用教程
May 24 Python
利用Python学习RabbitMQ消息队列
Nov 30 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
python+logging+yaml实现日志分割
Jul 22 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python文件处理fileinput使用方法详解
Jan 02 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
django在开发中取消外键约束的实现
May 20 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 Python
Python使用Web框架Flask开发项目
Jun 01 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 rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
在Python中使用HTML模版的教程
2015/04/29 Python
Python正则表达式使用经典实例
2016/06/21 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
利用python实现数据分析
2017/01/11 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
Flask之flask-session的具体使用
2018/07/26 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
python 实现多线程下载视频的代码
2019/11/15 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
外包公司软件测试工程师
2014/11/01 面试题
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
在项目中使用redis做缓存的一些思路
2021/09/14 Redis