Python-Windows定时关机与虚拟WIFI
2017-01-18 16:43
771 查看
简介
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 os def 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=' + 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'
相关文章推荐
- 开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器
- Windows7下笔记本设置虚拟wifi(不用安装软件)
- 随身wifi,360wifi,猎豹wifi一边去,不花钱windows自带开启虚拟wifi,随身wifi功能
- Windows创建Python虚拟环境
- python 自动重连wifi windows
- Windows 7 虚拟无线网卡(microserof virtual wifi miniport adapter)功能的开启和关闭
- Windows Python虚拟环境配置(Distribute + pip + virtualenv + virtualenvwrapper-powershell)
- Windows 7&Windows 8笔记本开启虚拟WiFi就是这么简单
- Windows虚拟wifi配置
- Windows下用Python 3.4+自带的venv模块创建虚拟环境
- Windows7下笔记本设置虚拟wifi(不用安装软件)的几点问题总结
- 开启windows 7虚拟WiFi
- [Windows问题-1] 虚拟wifi的创建和删除
- Windows下使用python虚拟环境Virtualenv
- 开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP)让电脑变成无线路由器
- 开启windows 7的隐藏功能:虚拟WiFi和SoftAP,从此无路由,无包月
- 开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器
- Windows虚拟WIFI设置器 wifi共享软件
- windows 命令行创建虚拟WIFI
- [转]windows下安装Python虚拟环境virtualenvwrapper-win