为了减缓手机和笔记本电池的衰退速度,网络上流传神秘的「40–80法则」。简单来说,就是让电量维持在40–80%,能延长电池寿命。至于你信不信,反正我是信了啦!
说起来简单,做起来难。一忙的时候,我常会忽略电池电量,所以我需要一款app 提醒我什么时候充电、什么时候停。到App Store 找了一下,结果发现有这个功能的app 满多都要付费,至于免费的,要不是很久没更新、功能不齐全,不然就是有bug。唯一一款赌运气买的app 也只有头两天正常运作,之后就不断漏通知⋯⋯
算了啦,我们用Python自己写自动程序提醒自己。自己的电脑自己救!
事前规划
别急着敲键盘,先稍微思考一下我们要程序帮我们做什么吧。
初步构想
在电池快没电的时候提醒我充电
在电池充饱电的时候提醒我拔掉电源线
因为要套用40–80 法则,所以我们把「快没电」定义成电量低于40%,至于「充饱电」则定义为电量高于80%。再回头把初步构想变具体一点:
如果电池电量低于40%,就提醒我充电
如果电池电量高于80%,就提醒我拔掉电源线
现在我们清楚了要用Python 达成什么目标了!不过其实还有一些隐藏条件我们知道但没有明确讲出来。例如:电量低于40% 但已接上电源线充电时;电量高于80%,但已经拔掉电源线时就不需要提醒。另外,我们希望程序频繁地监视电池电量,可能每隔30 秒、1 分钟、五分钟就检查一次电量。这些也要详细地写进代码里,否则电脑不知道我们想这样做。
换位思考是很棒的练习,我们假装自己是台电脑,把所有要做的事情都列出来吧。试简述之即为:
如果电池电量低于40%,而且目前没有连接电源线,就提醒我充电
如果电池电量高于80%,而且目前还连接着电源线,就提醒我拔掉电源线
在我喊卡之前,每分钟检查一次电池电量
把概念写出来
最后只要再搞定两个功能:
获得电池资讯(包含电量、目前是否连接电源线)
弹出提醒通知
听起来是大工程⋯⋯但Python 的好处就是有数量众多的类库等着我们用。神人已经把轮子造好了,我们就不用自己从头慢慢刻。
初步工作
这次要用到两个第三方类库:
psutil:https://github.com/giampaolo/psutil
pync:https://github.com/SeTeM/pync
因为它们不是内建的,所以不能直接import,要先「安装」才可以使用。安装的方法也很简单,用Python 内置的pip命令即可,如下:
备注:如果电脑同时存有Python 2和3的话,建议用pip3较能确保安装的是Python 3版本;如果电脑只有Python 3的话,用pip即可。
psutil
psutil (python system and process utilities) 可以用来监测执行中的程序以及系统资讯,例如CPU、内存、硬盘、网路活动,最棒的是它可以监测电池!
用法示范
放进程序里
现在我们能抓到电池的电量了,接下来是传送通知的功能。
pync
pync 可以让我们传送自订讯息通知到macOS 10.10+ 通知中心,送出指令后萤幕右上方会跳通知出来。
用法示范
自订样式
除了最基本的预设样式,pync 还能让我们自订一些细节,例如修改标题、增加副标题、播放声音提示等。我理想中的通知是有标题和提示音的:
由于pync 不能直接更改macOS 通知中心的「提示样式」,如果想让通知持续停留在萤幕右上角,直到使用者关闭的话,我们得到「系统偏好设定/通知」页面,在左侧点选terminal-notifier 后,把提示样式从「横幅」改为「提示」才行。如下图:
放进程序里
让程式重复执行
因为我想要让Python 持续监测电池情形,直到关机,所以我写了自动程序。为了避免程式占用太多资源,设定每检查一次电量后要等待一分钟。如下:
至此,一个简单的充电提醒程序就完成啰!如果中途想要停止的话可以用快捷键Control (⌃) + C强制停止。
完整代码如下:
本文由“编码之道”原创,关注“编码之道”及时获取更多知识
著作权归作者所有