python實(shí)現(xiàn)電腦自動(dòng)關(guān)機(jī)
0、前言
在以前讀書(shū)的時(shí)候,實(shí)驗(yàn)室里面要求每天都要關(guān)電腦,有時(shí)候出去玩得晚了,懶得回實(shí)驗(yàn)室關(guān)電腦,又沒(méi)有同學(xué)幫忙。于是就想,能不能通過(guò)什么手段實(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
安裝依賴(lài)包email:在python安裝目錄下/Scripts下執(zhí)行:pip install email
設(shè)置163郵箱的POP3/SMTP服務(wù) : 登錄163郵箱 –> 設(shè)置 –> POP3/SMTP/IMAP –> 勾選POP3/SMTP服務(wù)
2、說(shuō)明
執(zhí)行py程序后,程序?qū)⒚扛?0分鐘(時(shí)間可以自己設(shè)置)讀取一次郵箱最新郵件,解析獲得郵件主題,當(dāng)主題為“關(guān)機(jī)”時(shí),程序?qū)㈥P(guān)閉電腦,為“重啟”時(shí),將重啟電腦。在長(zhǎng)時(shí)間離開(kāi)電腦時(shí),可以將py程序跑起來(lái),如果需要關(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郵箱用戶(hù)名
read.pass_('xxx') # 163郵箱設(shè)置中的客戶(hù)端授權(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é)束語(yǔ)
不過(guò)自打我工作半年來(lái),一共也就只關(guān)過(guò)3、4次電腦
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中的引用知識(shí)點(diǎn)總結(jié)
在本文里我們給大家整理了關(guān)于Python中的引用知識(shí)點(diǎn)以及相關(guān)代碼總結(jié),需要的朋友們跟著學(xué)習(xí)下。2019-05-05
Python復(fù)制Excel中的行、列和單元格的操作代碼
在Excel中,復(fù)制行、列和單元格是日常工作中經(jīng)常需要進(jìn)行的操作,它可以幫助你快速調(diào)整數(shù)據(jù)布局、復(fù)制數(shù)據(jù)模板或進(jìn)行數(shù)據(jù)的批量處理,本文將詳細(xì)介紹如何使用Python將Excel中的行、列、或單元格范圍復(fù)制到指定位置,需要的朋友可以參考下2024-09-09
如何使用Python在2秒內(nèi)評(píng)估國(guó)際象棋位置詳解
關(guān)心編程語(yǔ)言的使用趨勢(shì)的人都知道,最近幾年,國(guó)內(nèi)最火的兩種語(yǔ)言非Python與Go莫屬,下面這篇文章主要給大家介紹了關(guān)于如何使用Python在2秒內(nèi)評(píng)估國(guó)際象棋位置的相關(guān)資料,需要的朋友可以參考下2022-05-05
pycharm打包python項(xiàng)目為exe執(zhí)行文件的實(shí)例代碼
這篇文章主要介紹了pycharm打包python項(xiàng)目為exe執(zhí)行文件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
DjangoRestFramework 使用 simpleJWT 登陸認(rèn)證完整記錄
Djangorestframework-simplejwt是Django REST Framework框架的一個(gè)jwt插件,使用 python http 工具進(jìn)行接口測(cè)試的方法文中給大家提到,重點(diǎn)給大家分享djangorestframework-simplejwt 使用記錄及登陸認(rèn)證的完成過(guò)程,感興趣的朋友跟隨小編一起看看吧2021-06-06
如何避免Python中的反模式編程使用實(shí)戰(zhàn)講解
這篇文章主要為大家介紹了如何Python中的反模式編程使用實(shí)戰(zhàn)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

