Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya Boleh Mendapatkan Keluaran Proses daripada subprocess.call()?

Bagaimanakah saya Boleh Mendapatkan Keluaran Proses daripada subprocess.call()?

Linda Hamilton
Lepaskan: 2024-11-28 18:30:10
asal
666 orang telah melayarinya

How Can I Retrieve Process Output from subprocess.call()?

Mendapatkan Keluaran Proses daripada Subprocess.call()

Kaedah subprocess.call() ialah utiliti serba boleh untuk melaksanakan arahan dan menjalankan proses dalam urutan yang berasingan. Walaupun tujuan utamanya adalah untuk memulakan proses tanpa menunggu selesai, mungkin terdapat keadaan di mana anda memerlukan akses kepada output proses yang dilaksanakan. Artikel ini bertujuan untuk menangani keperluan ini dengan meneroka teknik untuk mendapatkan semula output daripada subprocess.call() dengan berkesan.

Memanfaatkan subprocess.check_output()

Untuk Python versi 2.7 dan ke atas, modul subprocess menawarkan penyelesaian yang dipermudahkan untuk tugas ini: subprocess.check_output(). Kaedah ini khusus untuk mengekstrak keluaran standard daripada panggilan proses dan mengembalikannya sebagai rentetan.

Pertimbangkan contoh berikut:

import subprocess

output = subprocess.check_output(["ping", "-c", "1", "8.8.8.8"])
Salin selepas log masuk

Dalam senario ini, arahan ping memulakan yang mudah permintaan ping ke alamat IP yang ditentukan. Output daripada operasi ping ini ditangkap dan disimpan dalam pembolehubah output sebagai rentetan.

Mengendalikan Keperluan Output Khusus

Dalam situasi tertentu, anda mungkin memerlukan kawalan yang lebih terperinci ke atas pengendalian output proses . Untuk kes sedemikian, anda boleh menggunakan teknik berikut:

  • stdout dan stderr Argumen: Apabila menggunakan subprocess.call(), lulus objek StringIO untuk argumen stdout dan stderr. Ini membolehkan anda menangkap output standard dan ralat standard daripada proses ke dalam objek ini.
  • Berkomunikasi dengan Proses: Gunakan kaedah communicate() objek Popen untuk berinteraksi dengan proses yang sedang berjalan . Ini membolehkan anda menghantar input kepada proses dan mendapatkan kedua-dua output standard dan aliran ralat standard.

Kesimpulan

Dengan menggunakan teknik yang disebutkan di atas, anda boleh mendapatkan dan mengendalikan output dengan berkesan proses yang dimulakan menggunakan subprocess.call(). Sama ada anda memerlukan cara yang mudah untuk mendapatkan output standard melalui subprocess.check_output() atau memerlukan kawalan yang lebih terperinci ke atas pengurusan output, kaedah ini memperkasakan anda untuk memenuhi keperluan anda.

Atas ialah kandungan terperinci Bagaimanakah saya Boleh Mendapatkan Keluaran Proses daripada subprocess.call()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan