یک اسکریپت پایتون بنویس که با استفاده از ماژول subprocess و PIPE فرمان سیستم (مثل "uname -a") را اجرا کند، خروجی و وضعیت بازگشتی را دریافت کرده و خروجی را چاپ کند.
10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:58 0.0
برای حل این سوال از ماژول استاندارد subprocess استفاده کنید؛ میتوانید از subprocess.run یا subprocess.Popen با پارامتر stdout=subprocess.PIPE و stderr=subprocess.PIPE بهره ببرید تا خروجی و خطاها به صورت قابل خواندن در برنامه شما قابل دسترسی باشند. در محیطهای مرتبط با Systems Programming یا دستگاههای Embedded/IoT این روش برای گرفتن اطلاعات سیستم یا اجرای ابزارهای خط فرمان محلی مفید است. نکات: از text=True یا encoding='utf-8' برای دریافت رشته به جای بایت استفاده کنید، وضعیت بازگشتی (returncode) را بررسی کرده و برای جلوگیری از بنبست از پارامتر timeout استفاده نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای اجرای فرمانی مانند uname -a با استفاده از subprocess، بهتر است از subprocess.run با capture_output=True و text=True استفاده کنید تا stdout و stderr به صورت رشته در دسترس باشند. خروجی را با چاپ(stdout) و ارزیابی returncode مدیریت کنید تا بتوانید وضعیت بازگشتی را بررسی نمایید. برای جلوگیری از بنبست از timeout مناسب استفاده کنید و در صورت وجود خطا، stderr را چاپ کنید تا دیباگ راحتتر باشد. همچنین میتوانید با استفاده از encoding='utf-8' یا متن را به شکل رشتهای دریافت کنید تا کاراکترهای غیر ASCII به درستی نمایش داده شوند.
گزارش