امیرحسین محمدی
امیرحسین محمدی
خواندن ۲ دقیقه·۴ سال پیش

Battery Percentage

خب سلام و مستقیم میریم سمت یه آموزش دیگه و باحال.

همون طور گه گفتیم یه ریپو زدیم به اسم learn که توش از این اموزش های باحال قرار میدیم. دومین آموزش برای باطری و داستانای باطری هستش!

خب چطوری میشه یه اسکریپت بنویسیم که بهمون مقدار شارژ باطری لپ تاپمون رو بده؟

یا این که اگه زیر 30 درصد اومد بهمون نوتیفیکیشن بده؟

خب خیلی ساده هستش! استفاده از ماژول psutil. این ماژول خیلی قوی هستش و فقط باطری یه تیکه کوچیکی از استفاده ای این ماژول هستش. خب پس میایم و بخش های مختلف این ماژول رو در طی روز های آینده بررسی میکنیم.

نصب این ماژول هم خب مثل بقیه راحته و با pip نصب میشه.

pip3 install psutil

خب حالا نصب کردیم و میریم برای شروع اولین اسکریپت با psutil. گفتیم تو این بخش میخوایم درصد باطری ببینیم. دو تا چیز هم اضافه تر میگیم برای این که برنامه بهمون بگه آیا لپ تاپ در حال شارژ کردن هست که خیر. و این که بگه تا چه مدت زمانی لپ تاپ ما شارژ داره.

  • قدم اول مثل همیشه ایمپورت کردن ماژول هست.
import psutil

خب فانکشن های زیادی درون psutil هستند که تعدادی از اون ها برای سنسور های استفاده میشند یا بعضی ها برای مموری و هارد و این چیزا. باطری تو دسته سنسور هاست.

ما از تابع sensors_battery استفاده میکنیم. اگه این تابع رو خشک و خالی فقط صدا بزنید به شما همچین چیزی رو برمیگردونه:

percent=93, secsleft=16628, power_plugged=False

یعنی سه تا متغیر داخل این تابع قرار دارند. اولی درصد باطری، دومی زمان باقیمانه به ثانیه و اخری هم این که آیا لپ تاپ به برق وصله یا نه.

  • خب پس مثل نوتیفیکیشن میایم و به یه متغیر تابع sensors_battery رو میدیم. یعنی:
battery = psutil.sensors_battery()
  • و حالا برای پرینت کردن هم خیلی راحت میشه عمل کرد:
print(f&quotYour battery percentage is {battery.percent}&quot)
print(f&quotIs your battery plugged in ? {battery.power_plugged}&quot)
  • اما ولی چطوری ثانیه رو تبدیل کنیم به ساعت؟

برای این کار میشه یه تابع نوشت که ثانیه ها رو بگیره و روشون عملیات مورد نظر رو انجام بده. در ضمن این تابع رو خودم ننوشتم و یه دوستی توی GeeksForGeeks این رو نوشته بود.

def convert(seconds):
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
return &quot%d:%02d:%02d&quot % (hours, minutes, seconds)
  • و برای تبدیل هم میگیم:
print(f&quotTimes left is {convert(battery.secsleft)}&quot)


و حالا وقت اجرای برنامه هستش!

خب برنامه خیلی عالی داره کار میکنه! دیگه بقیه کاراش میمونه خلاقیت خودتون.

میتونید یه کنترل پنل بسازید با کیوت که توش از ماژول psutil استفاده کنید که اطلاعات cpu رو مثلا بده یا دما رو بده و این چیزای دیگه.

این قسمت اول ماژول psutil بود. تو قسمت های بعدی درباره cpu و مموری و هارد قراره صحبت کنیم.


کار خاصی نکردیم اما ولی کدش رو میزاریم گیت هاب.

https://github.com/BlackIQ/learn/tree/main/Python/2-Battery


پس فعلا خداحافظ!

pythonbatteryblackiqgithub
توسعه دهنده نرم افزار. amirhossein.info
شاید از این پست‌ها خوشتان بیاید