یک برنامه پایتون بنویسید که دمای CPU را از مسیر /sys/class/thermal/thermal_zone0/temp خوانده و به درجهٔ سلسیوس با یک رقم اعشار چاپ کند و در صورت نبودن یا دسترسی نداشتن فایل، پیغام مناسبی نمایش دهد.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:22 0.0
برای حل این مسئله فایل را با open بخوانید، مقدار را به عدد صحیح تبدیل کرده و بر 1000 تقسیم کنید تا به سلسیوس برسید، سپس با فرمت f"{temp_c:.1f}°C" چاپ کنید. از بلوک try/except برای مدیریت FileNotFoundError، PermissionError و ValueError استفاده کنید و در صورت نیاز با ماژول glob مسیرهای مشابه مثل /sys/class/thermal/thermal_zone*/temp را جستوجو کنید. نکات: روی دستگاه توسعه یا با فایل نمونه تست کنید (میتوانید فایل متنی با عدد مثلاً 42000 بسازید)، و برای خواندن ایمن مجوزها را بررسی کنید تا در محیطهای امبدد یا لینوکسهای مختلف کار کند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای سازگاری بهتر با دستگاههای مختلف، از glob برای پیدا کردن مسیرهای مانند /sys/class/thermal/thermal_zone*/temp استفاده کنید تا در صورت وجود نام zone متفاوت باز هم کار کند. استفاده از try/except برای FileNotFoundError، PermissionError و ValueError و یا استفاده از os.access قبل از خواندن، گزارشهای واضحی به کاربر بدهد. اگر فایل وجود دارد اما مقدار غیر عددی یا خالی باشد، پیام مناسبی چاپ کنید و در صورت نبود فایل با کاربرپسندترین پیام خطا روبرو شوید. برای آزمایش میتوانید یک فایل نمونه مثل 42000 را در مسیر مشابه بسازید و با تنظیم مجوزهای مناسب، عملکرد کد را شبیهسازی کنید.
گزارش