Python Windows定時關機與虛擬WIFI

2021-07-26 05:56:08 字數 3637 閱讀 4319

python是目前較為流行的膠水語言,一般用於網路程式設計、系統應用、科研計算等全方位領域,是雲計算開源框架openstack的主要開發語言。

python的功能裡有乙個os模組來銜接windows的命令列工具,可以實現過去在dos環境下要執行的各種功能。這次的範例是實現一鍵執行定時關機以及虛擬wifi熱點架設任務,以便未來不需要再敲命令,直接按習慣去執行需要的功能。

首先看一下windows的定時關機任務。為了實現它,一般流程是先按win+r啟動執行框,輸入cmd進入命令列工具。如果要定時一小時關閉電腦,也就是3600秒,需要在控制台輸入下面的指令:

shutdown -f

-s-t

3600

要是改變主意不想定時關機了,就再次輸入:

shutdown -a
然後再看一下用電腦架設虛擬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就不會出現了。

我們習慣於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 os

defshutdown

(time = 30):

if time == 0:

cmd = 'shutdown -a'

# 取消關機任務

else:

cmd = 'shutdown -f -s -t ' + str(time * 60)

print os.system(cmd)

defcreatwifiap

(mode = 'allow' , ssid = 'virtualhotport', key = 123456):

if mode == 'disallow':

cmd = 'netsh wlan set hostednetwork mode=' + mode

print 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 定時任務

之前都是在liunx上部署任務,現在換到windows部署python計畫任務,期間遇到一些小問題,現在總結一下 1 執行結果 0x1 程式或指令碼 python.exe 新增引數 可執行檔案的絕對路徑 起始於 python.exe的所在路徑 2 python檔案內的引用和檔案儲存問題 需要把檔案的...

python windows下面環境配置

我選擇的是python2.7 直接雙擊安裝,然後再環境變數path中加上python的目錄比如 e python27 然後再cmd資料python,應該就成功了。2.安裝easy install 如果是ez setup.py,直接雙擊執行。easy install安裝以後在e python27 sc...

python windows路徑轉Linux路徑

參考 python windows路徑轉linux路徑 例如筆者需要獲取當前指令碼 test2.py 所在的路徑,並將該路徑轉換為linux下的路徑 import os import sys if name main print this is test2 file sh path os.path....