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