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 ipconfig
ni 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 stdout
ga yuborgan barcha ma'lumotlarni ushlash imkonini beradi. Shuningdek, encoding
ni 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 stderr
ni qaytaradi, shuning uchun natija tuple (juftlik) sifatida qaytadi. Bu yerda stderr
ni 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