Python-Windows定时关机与虚拟WIFI
簡介
Python是目前較為流行的膠水語言,一般用于網絡編程、系統應用、科研計算等全方位領域,是云計算開源框架OpenStack的主要開發語言。
Python的功能里有一個os模塊來銜接windows的命令行工具,可以實現過去在DOS環境下要執行的各種功能。這次的范例是實現一鍵執行定時關機以及虛擬Wifi熱點架設任務,以便未來不需要再敲命令,直接按習慣去執行需要的功能。
定時關機原理
首先看一下Windows的定時關機任務。為了實現它,一般流程是先按Win+R啟動運行框,輸入cmd進入命令行工具。如果要定時一小時關閉電腦,也就是3600秒,需要在控制臺輸入下面的指令:
shutdown -f -s -t 3600要是改變主意不想定時關機了,就再次輸入:
shutdown -a虛擬WIFI架設
然后再看一下用電腦架設虛擬Wifi熱點,這里利用的是windows自帶的功能,但是也要在windows命令行控制器里執行對應的指令:
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就不會出現了。
Python的作用
我們習慣于C語言系統常用的循環、分支、判斷、計算等語法,但是要保存這些執行命令必須要新學習批處理程序,對新手而言增加了很大的時間成本。例如我們要改變定時關機的時間,需要學習下面的語法:
set /p choice=請輸入時間(分鐘): if %choice%==undo shutdown /a set /a minute=%choice%*60 shutdown -f -s -t %minute%這里的變量choice和minute相當的讓人捉急,對以C語言為學習基礎的同學很不友好。因此我們要用Python的os模塊來進行一次大換血。它里面已經集成了Windows命令行調用函數,可以直接在Python里面處理好字符串、數字等內容,再嵌入到命令中去。這樣的好處是我們不用再去學習Windows批處理程序的各種邏輯語法。
Python執行Windows命令行功能只需輸入如下指令就夠了:
import os # 導入os模塊 os.system(cmd) # 執行命令行指令為了替換上面minute這個變量的違和感,我們用Python就可輕而易舉地實現:
cmd = 'shutdown -f -s -t ' + str(time * 60) os.system(cmd)在cmd的參數位置直接輸入對應的命令字符串,就可不啟動一系列復雜的命令行指令,還可以保存在代碼里免去下去敲鍵盤的時間。
完整代碼
#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'輸入定時分鐘數:'))elif TaskNumber == 2:print r'輸入disallow關閉Wifi熱點'print r'輸入allow開啟熱點'mode = input('請輸入命令:')CreatWifiAp(mode)使用說明
使用時首先會彈出下面的提示,命令行提示輸入序號時,輸入1可以跳轉到定時關機任務,輸入2可以跳轉到架設虛擬WIFI熱點任務。
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:在定時關機任務提示輸入定時分鐘數時,設置一個非0的數可啟動關機倒計時,單位以分鐘計,命令行執行如下:
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:1 輸入0可取消定時關機任務 輸入定時分鐘數:60如果要取消定時關機任務,直接輸入0函數會去執行對應的命令:
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:1 輸入0可取消定時關機任務 輸入定時分鐘數:0架設虛擬WIFI時,提示輸入命令是打入‘allow’就能啟動,注意這個是Python語法里的字符串,因為在Shell下執行的是Python的語法,而不像C++控制臺默認輸入的是字符串,所以要注意不能少加引號。
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:2 輸入disallow關閉Wifi熱點 輸入allow開啟熱點 請輸入命令:'allow'如果要關閉WIFI,就打‘disallow’即可:
1: 定時關機任務 2: 架設虛擬WIFI熱點 請輸入序號:2 輸入disallow關閉Wifi熱點 輸入allow開啟熱點 請輸入命令:'disallow'總結
以上是生活随笔為你收集整理的Python-Windows定时关机与虚拟WIFI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tengine php fpm,FPM打
- 下一篇: Google glass GDK - H