یک تابع پایتون بنویس که یک دستور سیستم دلخواه را اجرا کند و خروجی STDOUT آن را به‌عنوان یک رشته برگرداند.

4.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:30

0.0

برای این کار از ماژول استاندارد subprocess استفاده کنید؛ مثلاً subprocess.run با پارامتر stdout=subprocess.PIPE یا capture_output=True و text=True تا خروجی به‌صورت رشته بازگردد. خروجی را بازگردانده و وضعیت اجرای دستور (returncode) را بررسی کنید یا در صورت نیاز با timeout از وقوع بن‌بست جلوگیری کنید. این تکنیک در برنامه‌نویسی سیستمی و محیط‌های Embedded/IoT برای خواندن اطلاعات سخت‌افزار یا لاگ‌ها مفید است؛ از استفاده از shell=True مگر در صورت ضرورت خودداری کنید و ورودی‌ها را امن نگه دارید.

توسط پژوهشگر در 221 روز قبل ساعت 01:30
دسته بندی ها: Python Python for beginner
arman در 221 روز قبل ساعت 13:02

نکته مفید این است که با استفاده از subprocess.run و capture_output=True یا stdout=subprocess.PIPE، خروجی STDOUT به‌صورت رشته بازمی‌گردد و می‌توانید returncode را بررسی کنید. برای امنیت، از shell=False استفاده کنید و ورودی‌ها را به‌طور صحیح اعتبارسنجی کنید تا از تزریق دستورات جلوگیری شود. برای جلوگیری از بن‌بست، زمان اجرای محدود با timeout تعیین کنید و در صورت وقوع خطا با استثناها مدیریت مناسب انجام دهید. اگر می‌خواهید خروجی‌های stdout وstderr هر دو را بخوانید، می‌توانید stderr را هم دریافت کنید یا از capture_output=True استفاده کنید.

گزارش

1 پاسخ

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

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