python實現進度條和系統(tǒng)通知的示例詳解
趁著休息的空隙,研究了一下兩個比較有意思的腳本,在日常的使用中很好用。
今天的代碼展示區(qū)別于以前的代碼圖片展示,直接展示代碼。shigen連夜修改了一下md轉微信排版的引擎和部分樣式。
下載網絡文件并展示進度
import click
from tqdm import tqdm
import requests
@click.command()
@click.option("-url", "--url", help="file url", required=True)
@click.option("-name", "--name", help="Picture rename")
def file(url, name):
"""File download"""
_download(url, name)
def _download(url, name):
if not name:
name = get_file_name(url)
resp = requests.get(url, stream=True)
# 獲取文件大小
file_size = int(resp.headers['content-length'])
with tqdm(total=file_size, unit='B', unit_scale=True, unit_divisor=1024, ascii=True, desc=name) as bar:
with requests.get(url, stream=True) as r:
with open(name, 'wb') as fp:
for chunk in r.iter_content(chunk_size=512):
if chunk:
fp.write(chunk)
bar.update(len(chunk))
# 解析文件名稱
def get_file_name(url):
if '?' in url:
return url.split('?')[0].split('/')[-1]
else:
return url.split('/')[-1]
if __name__ == '__main__':
file()
在使用之前,需要安裝如下的包:
pip install click tqdm
其中,click是一個很有意思的解析命令行參數的工具,比argsparse更好用;tqdm是常用的進度條顯示。
效果是怎樣的呢?我們一起看看:

系統(tǒng)通知
我們先看一下代碼:
from plyer import notification
import psutil
from time import sleep
while True:
battery = psutil.sensors_battery()
life = battery.percent
if life < 60:
notification.notify(
title = "Battery Low",
message = "Please connect to power source",
timeout = 10
)
sleep(60)
實現的效果就是:每隔1分鐘執(zhí)行一次通知,通知的條件是當前的life即電池電量小于60的時候,出現通知框:

需要提前安裝的庫有:
pip install plyer
注意:
此腳本僅在windows系統(tǒng)中執(zhí)行測試效果,macos系統(tǒng)還有待驗證,感興趣的伙伴可以嘗試一下。后期shigen也會分享基于本腳本魔改的效率腳本。
到此這篇關于python實現進度條和系統(tǒng)通知的示例詳解的文章就介紹到這了,更多相關python進度條內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python并發(fā)編程多進程,多線程及GIL全局解釋器鎖
這篇文章主要介紹了Python并發(fā)編程多進程,多線程及GIL全局解釋器鎖,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-07-07

