溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python實(shí)現(xiàn)電腦自動關(guān)機(jī)

發(fā)布時間:2020-09-16 18:07:58 來源:腳本之家 閱讀:245 作者:老虎法爾考 欄目:開發(fā)技術(shù)

0、前言

在以前讀書的時候,實(shí)驗(yàn)室里面要求每天都要關(guān)電腦,有時候出去玩得晚了,懶得回實(shí)驗(yàn)室關(guān)電腦,又沒有同學(xué)幫忙。于是就想,能不能通過什么手段實(shí)現(xiàn)遠(yuǎn)程關(guān)閉電腦。在網(wǎng)上搜索一番后,決定用 python + email,實(shí)現(xiàn)遠(yuǎn)程關(guān)閉電腦。

1、準(zhǔn)備

python: 3.5.2 email:163郵箱 system:Win10
安裝依賴包email:在python安裝目錄下/Scripts下執(zhí)行:pip install email
設(shè)置163郵箱的POP3/SMTP服務(wù) : 登錄163郵箱 –> 設(shè)置 –> POP3/SMTP/IMAP –> 勾選POP3/SMTP服務(wù)

2、說明

執(zhí)行py程序后,程序?qū)⒚扛?0分鐘(時間可以自己設(shè)置)讀取一次郵箱最新郵件,解析獲得郵件主題,當(dāng)主題為“關(guān)機(jī)”時,程序?qū)㈥P(guān)閉電腦,為“重啟”時,將重啟電腦。在長時間離開電腦時,可以將py程序跑起來,如果需要關(guān)機(jī)或重啟,可以向郵箱發(fā)一封郵件即可

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郵箱設(shè)置中的客戶端授權(quán)密碼
  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 == '關(guān)機(jī)':
      os.system('shutdown -s -t 3')
      break
    time.sleep(600) # 每10分鐘檢查一次

if __name__ == '__main__':
  checkEmailSubject()

4、結(jié)束語

不過自打我工作半年來,一共也就只關(guān)過3、4次電腦

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI