The subprocess.Popen.communicate() Function
Python bilan Subprocesslar Ishga Tushirish.
subprocess.Popen.communicate() funksiyasi
Ba'zan siz yaratgan jarayon bilan muloqot qilish zarur bo‘ladi. Popen.communicate() metodidan foydalangan holda, siz jarayonga ma'lumot yuborishingiz va undan ma'lumot olishingiz mumkin.
Ushbu bo‘limda biz faqat ma'lumot olish uchun communicate() funksiyasini ishlatamiz. Keling, ifconfig komandasini ishlatib, kompyuteringizning tarmoq kartasi haqida ma'lumot olishni ko‘rib chiqamiz. Linux yoki Mac tizimlarida ifconfig komandasini ishlatish mumkin, Windowsda esa ipconfigni ishlatish kerak. E'tibor bering, ushbu komandada operatsion tizimingizga qarab, faqat bitta harf farqi bor.
Quyidagi kodni ko‘rib chiqing:
Natija:
Ushbu kod oldingi kodga qaraganda biroz boshqacha tarzda sozlangan. Keling, har bir qismini batafsil ko‘rib chiqamiz.
Birinchi e'tibor berishingiz kerak bo‘lgan narsa — stdout parametrini subprocess.PIPE ga o‘rnatganingizdir. Bu jarayonning stdoutga yuborgan barcha ma'lumotlarni ushlash imkonini beradi. Shuningdek, encodingni utf-8 qilib belgilaysiz. Buning sababi, subprocess.Popen chaqiruvi odatda baytlar (bytes) qaytaradi, biz esa natijani o‘qish osonroq bo‘lishi uchun matn (string) shaklida olishni xohlaymiz.
Keyingi qadam — communicate() metodini chaqirish, bu jarayonning ma'lumotlarini ushlab, qaytaradi. communicate() metodi stdout va stderrni qaytaradi, shuning uchun natija tuple (juftlik) sifatida qaytadi. Bu yerda stderrni ushlamaganingiz uchun, u None bo‘ladi.
Oxirgi qadamda esa ma'lumotni ekranga chiqarasiz. Natija ancha uzun bo‘lgani uchun, bu yerda u qisqartirilgan.
Endi esa subprocess yordamida qanday qilib o‘qish va yozishni ko‘rib chiqamiz!
Last updated on