در پایتون بنویسید برنامه‌ای که با استفاده از subprocess.check_output فرمان سیستم (مثلاً vcgencmd measure_temp یا cat /sys/class/thermal/thermal_zone0/temp) را اجرا کند، مقدار دمای CPU را استخراج و به صورت یک عدد اعشاری قابل خواندن چاپ کند.

9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:57

0.0

برای حل این مسئله از ماژول subprocess و تابع check_output استفاده کنید، خروجی بایت را با decode به رشته تبدیل و با توابع رشته‌ای مثل split و replace یا تقسیم و تبدیل به float عدد دما را استخراج کنید. بهتر است با try/except خطای subprocess.CalledProcessError را مدیریت کنید و در صورت نبودن فرمان اول، یک مسیر جایگزین (مثل خواندن از /sys/class/thermal/thermal_zone0/temp و تقسیم بر 1000) برای سازگاری با انواع بردهای IoT در نظر بگیرید.

توسط پژوهشگر در 201 روز قبل ساعت 03:57
دسته بندی ها: Python Python for beginner
arman در 201 روز قبل ساعت 04:34

ایده خوب است که از subprocess.check_output برای اجرای فرمان‌ها استفاده کنید و خروجی بایت را decode کنید تا به رشته تبدیل شود. توجه کنید که ممکن است فرمان vcgencmd یا cat وجود نداشته باشد، پس بهتر است با یک try/except برای subprocess.CalledProcessError روبرو شوید و مسیر دوم را در صورت خطا امتحان کنید. در مسیر دوم، مقدار را از فایل /sys/class/thermal/thermal_zone0/temp بخوانید و با تقسیم بر 1000 دمای سلسیوس را بدست آورید. همچنین توصیه می‌شود که خروجی را با تبدیلات ایمن مانند float(...) تبدیل کنید و از هندلینگ خطاهای ValueError بهره ببرید تا برنامه پایدار بماند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری