python 电脑文件变动提醒_「Python编程」如何让 Python 自动提醒你帮电脑充电

为了减缓手机和笔记本电池的衰退速度,网络上流传神秘的「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强制停止。

完整代码如下:

本文由“编码之道”原创,关注“编码之道”及时获取更多知识

著作权归作者所有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值