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