The subprocess.run() Function
Python bilan Subprocesslar Ishga Tushirish.
subprocess.run()
funksiyasi
run()
funksiyasi Python 3.5 versiyasida qo‘shilgan. Bu funksiya subprocessdan foydalanish uchun tavsiya etilgan usul hisoblanadi.
Quyidagi tarzda ishlaydi:
Funksiya ta'rifiga qarash, uning qanday ishlashini yaxshiroq tushunishga yordam beradi:
run()
funksiyasidan samarali foydalanish uchun, bu argumentlarning hammasi nima qiladi, degan ma'lumotga ega bo‘lishingiz shart emas. Aslida, ko‘pincha faqat birinchi argument va shell
ni yoqish yoki yoqmaslikni bilish kifoya qiladi. Boshqa argumentlar esa juda maxsus holatlar uchun foydalidir.
Keling, umumiy Linux / Mac komandalaridan biri bo‘lgan ls
ni ishlatib ko‘raylik. ls
komandasining vazifasi — joriy papkada joylashgan fayllarni ro‘yxatini chiqarish.
Standart holatda, ls
siz hozirda bo‘lgan papkadagi fayllarni ro‘yxatlaydi.
Subprocess yordamida uni ishga tushurish uchun quyidagi kodni ishlatish kerak:
Natijada:
Shuningdek, shell=True
deb belgilash mumkin, bu komandani to‘g‘ridan-to‘g‘ri shell orqali ishga tushiradi. Ko‘pincha bunga hojat qolmaydi, ammo bu jarayonni yanada batafsil boshqarish va shell pipe’lari va yulduzcha belgilardan foydalanish zarurati tug‘ilganda foydalidir.
Agar komandadan olingan natijani saqlab, keyinchalik foydalanmoqchi bo‘lsangiz, qanday qilib buning mumkinligini ko‘rib chiqamiz!
Natijani olish
Ko‘pincha tashqi jarayondan natija olish va o‘sha ma'lumotlar bilan biror ish qilish kerak bo‘ladi. run()
funksiyasidan natija olish uchun capture_output
argumentini True
qilib belgilashingiz mumkin:
Natija:
Bu holatda natija juda ham foydali bo‘lmaydi, chunki qaytarilgan natijani o‘zgaruvchiga saqlamadingiz. Keling, kodni yangilab, natijani o‘zgaruvchiga saqlaymiz va shunda stdout
ga kirishimiz mumkin:
Natija:
Natija CompletedProcess
klassining obyektidir, bu orqali siz kiruvchi argumentlarni, subprocessning returncode
qiymatini, shuningdek subprocessning stdout
va stderr
qiymatlarini olish imkoniyatiga ega bo‘lasiz.
returncode
haqida keyinchalik batafsil o‘rganasiz. stderr
ko‘pincha dasturlar xatolik xabarlarini chiqaradigan joy bo‘lsa, stdout
esa dastur natijalarini chiqarish uchun ishlatiladi.
Agar qiziqsangiz, bu kod bilan tajriba qilib, shu atributlarda hozirda nimalar mavjudligini aniqlashingiz mumkin:
Endi esa Popen
haqida o‘rganishni davom ettiramiz.
Last updated on