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实现人人网登录示例分享
Jan 19 Python
Python中的pprint折腾记
Jan 21 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
详解Python进程间通信之命名管道
Aug 28 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
python基于递归解决背包问题详解
Jul 03 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
python修改FTP服务器上的文件名
Sep 11 Python
python实现文法左递归的消除方法
May 22 Python
解决Keras使用GPU资源耗尽的问题
Jun 22 Python
python中super()函数的理解与基本使用
Aug 30 Python
python 学习GCN图卷积神经网络
May 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
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
PHP查询网站的PR值
2013/10/30 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
js 数组操作代码集锦
2009/04/28 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
团员个人的自我评价
2013/12/02 职场文书
工艺员岗位职责
2014/02/11 职场文书
文明礼仪标语
2014/06/13 职场文书
三方股东合作协议书
2014/10/28 职场文书
手术室护士个人总结
2015/02/13 职场文书
教师求职自荐信
2015/03/26 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
2015中学学校工作总结
2015/07/20 职场文书
中秋节随笔
2015/08/15 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书