مكتبة subprocess
الـ subprocess هي module او مكتبة موجودة لدينا في بايثون تمكننا من التعامل مع سطر الأوامر command line لرؤية stdout و stderr وهي مهمة جداً جداً و سوف نتعامل معها في السكيورتي و في الشبكات.مثال 1
ننشأ ملف بايثون مثلاً على سطح المكتب بإسم subprocess_.py ونكتب بداخلهfrom subprocess import PIPE , Popen
p = Popen ("tasklist",stdout=PIPE,stderr=PIPE,shell=True)
print(p.communicate()[0])
شرح المثال السابق
قلنا بالمثال انه لدينا process و استخدمنا به Popen وأخذ مننا بعض الارجيومنت و اولها tasklist الذي هو موجود لدينا ضمن النظام و ثانيا stdout و ثالثاً الخطأ stderr اذا وجد خطأ و الـ shell يساوي True ,وهذه من الاساسيات في الـ process ,و بعدها لرؤية النتيجة استخدمنا p.communicate سيعرض لنا Tuple عنصرين لا اكثر , الاول stdout ,والثاني stderr .نشغل الامر بـ cmd الآن لنرى النتيجة
اما اذا استخدمنا امر غير موجود لدينا في السيستم كالتالي
from subprocess import PIPE , Popen
p = Popen ("tasklist",stdout=PIPE,stderr=PIPE,shell=True)
print(p.communicate()[0])
عند التشغيل لن يعرض لنا اي شيئ لأن الامر غير موجود , و اذا نريد عرض الرساله غير موجود نستخدم نغير بدل الـ 0 نضعها 1 لعرض الاخطاء كالتالي
from subprocess import PIPE , Popen
p = Popen ("lskd",stdout=PIPE,stderr=PIPE,shell=True)
تعليقات
إرسال تعليق