ماژول subprocess شامل انواع زیادی از توابع برای ران کردن کامند ها می باشد و یک کلاس بنام Popen دارد که تمام این توابع از همین کلاس درست شده اند. حتی تابع system در ماژول os نیز از این کلاس درست شده.
نکته: بعضی از توابع فقط در ورژن 3 پایتون وجود دارند و بهمین خاطر اگر ورژن پایتون شما 2 هست این توابع رو نمی تونید اجرا کنید. من در پایان این توابع می نویسم که فقط در ورژن 3 وجود دارند.
>>> Let's start ;)
0. تابع
subprocess.getstatusoutput(cmd)
این تابع کد رو با استفاده از os.popen اجرا میکنه و خروجی اش یه تاپل 2 تایی (status, output) می باشد.
در اندیس اول status و در اندیس دوم خروجی (output) مربوط به اجرا کردن کد رو قرار میده.
اگر کد ما درست در shell اجرا بشه که status برابر 0 میشه وگرنه کد مربوط به خطا رو در status قرار میده.
Example:
>>> subprocess.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> subprocess.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
این تابع در unix قابل استفاده هست.
این تابع در ورژن 3 پایتون قابل استفاده هست.
Good luck