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中正则表达式的用法实例汇总
Aug 18 Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
centos6.7安装python2.7.11的具体方法
Jan 16 Python
python中defaultdict的用法详解
Jun 07 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
Python 创建空的list,以及append用法讲解
May 04 Python
对pandas中to_dict的用法详解
Jun 05 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
Python gevent协程切换实现详解
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连接mssql:pdo odbc sql server
2011/07/20 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php实现倒计时效果
2015/12/19 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
jquery each()源代码
2011/02/14 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Python如何用filter函数筛选数据
2020/03/05 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
python 模块导入问题汇总
2021/02/01 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
复古服装:RetroStage
2019/05/10 全球购物
关于安全的演讲稿
2014/05/09 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
zabbix监控mysql的实例方法
2021/06/02 MySQL
实例详解Python的进程,线程和协程
2022/03/13 Python