Python-Windows定时关机与虚拟WIFI
簡介
Python是目前較為流行的膠水語言,一般用于網(wǎng)絡編程、系統(tǒng)應用、科研計算等全方位領域,是云計算開源框架OpenStack的主要開發(fā)語言。
Python的功能里有一個os模塊來銜接windows的命令行工具,可以實現(xiàn)過去在DOS環(huán)境下要執(zhí)行的各種功能。這次的范例是實現(xiàn)一鍵執(zhí)行定時關機以及虛擬Wifi熱點架設任務,以便未來不需要再敲命令,直接按習慣去執(zhí)行需要的功能。
定時關機原理
首先看一下Windows的定時關機任務。為了實現(xiàn)它,一般流程是先按Win+R啟動運行框,輸入cmd進入命令行工具。如果要定時一小時關閉電腦,也就是3600秒,需要在控制臺輸入下面的指令:
shutdown -f -s -t 3600要是改變主意不想定時關機了,就再次輸入:
shutdown -a虛擬WIFI架設
然后再看一下用電腦架設虛擬Wifi熱點,這里利用的是windows自帶的功能,但是也要在windows命令行控制器里執(zhí)行對應的指令:
netsh wlan set hostednetwork mode=allow ssid=VirtualHotPort key=43215678 netsh wlan start hostednetwork前一條設置了虛擬wifi的使能、SSID和密碼,第二條啟動了虛擬wifi,如果要關閉使用下面一條命令:
netsh wlan set hostednetwork mode=disallow也就是把上面那條的allow改為了disallow并去掉了SSID和密碼,這樣這個wifi就不會出現(xiàn)了。
Python的作用
我們習慣于C語言系統(tǒng)常用的循環(huán)、分支、判斷、計算等語法,但是要保存這些執(zhí)行命令必須要新學習批處理程序,對新手而言增加了很大的時間成本。例如我們要改變定時關機的時間,需要學習下面的語法:
set /p choice=請輸入時間(分鐘): if %choice%==undo shutdown /a set /a minute=%choice%*60 shutdown -f -s -t %minute%這里的變量choice和minute相當?shù)淖屓俗郊?#xff0c;對以C語言為學習基礎的同學很不友好。因此我們要用Python的os模塊來進行一次大換血。它里面已經(jīng)集成了Windows命令行調(diào)用函數(shù),可以直接在Python里面處理好字符串、數(shù)字等內(nèi)容,再嵌入到命令中去。這樣的好處是我們不用再去學習Windows批處理程序的各種邏輯語法。
Python執(zhí)行Windows命令行功能只需輸入如下指令就夠了:
import os # 導入os模塊 os.system(cmd) # 執(zhí)行命令行指令為了替換上面minute這個變量的違和感,我們用Python就可輕而易舉地實現(xiàn):
cmd = 'shutdown -f -s -t ' + str(time * 60) os.system(cmd)在cmd的參數(shù)位置直接輸入對應的命令字符串,就可不啟動一系列復雜的命令行指令,還可以保存在代碼里免去下去敲鍵盤的時間。
完整代碼
#coding=utf-8 # 必須用utf8保存中文字符import osdef Shutdown(time = 30):if time == 0:cmd = 'shutdown -a' # 取消關機任務else:cmd = 'shutdown -f -s -t ' + str(time * 60)print os.system(cmd)def CreatWifiAp(mode = 'allow' , ssid = 'VirtualHotPort', key = 123456):if mode == 'disallow':cmd = 'netsh wlan set hostednetwork mode=' + modeprint os.system(cmd)elif mode == 'allow':cmd = 'netsh wlan set hostednetwork mode=' + mode + ' ssid=' + ssid + ' key='+str(key)print os.system(cmd)print os.system('netsh wlan start hostednetwork')if __name__ == "__main__":print '1: 定時關機任務\n2: 架設虛擬WIFI熱點'TaskNumber = input(r'請輸入序號:')if TaskNumber == 1 :print r'輸入0可取消定時關機任務'Shutdown(input(r'輸入定時分鐘數(shù):'))elif TaskNumber == 2:print r'輸入disallow關閉Wifi熱點'print r'輸入allow開啟熱點'mode = input('請輸入命令:')CreatWifiAp(mode)使用說明
使用時首先會彈出下面的提示,命令行提示輸入序號時,輸入1可以跳轉(zhuǎn)到定時關機任務,輸入2可以跳轉(zhuǎn)到架設虛擬WIFI熱點任務。
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:在定時關機任務提示輸入定時分鐘數(shù)時,設置一個非0的數(shù)可啟動關機倒計時,單位以分鐘計,命令行執(zhí)行如下:
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:1 輸入0可取消定時關機任務 輸入定時分鐘數(shù):60如果要取消定時關機任務,直接輸入0函數(shù)會去執(zhí)行對應的命令:
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:1 輸入0可取消定時關機任務 輸入定時分鐘數(shù):0架設虛擬WIFI時,提示輸入命令是打入‘a(chǎn)llow’就能啟動,注意這個是Python語法里的字符串,因為在Shell下執(zhí)行的是Python的語法,而不像C++控制臺默認輸入的是字符串,所以要注意不能少加引號。
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:2 輸入disallow關閉Wifi熱點 輸入allow開啟熱點 請輸入命令:'allow'如果要關閉WIFI,就打‘disallow’即可:
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:2 輸入disallow關閉Wifi熱點 輸入allow開啟熱點 請輸入命令:'disallow'總結(jié)
以上是生活随笔為你收集整理的Python-Windows定时关机与虚拟WIFI的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tengine php fpm,FPM打
- 下一篇: windows 优化大师免费专业版下载