Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menindas Output yang Tidak Diingini daripada Subproses dalam Python?

Bagaimanakah Saya Boleh Menindas Output yang Tidak Diingini daripada Subproses dalam Python?

Linda Hamilton
Lepaskan: 2024-12-16 04:42:16
asal
390 orang telah melayarinya

How Can I Suppress Unwanted Output from Subprocesses in Python?

Penindasan Output Subproses dalam Python

Dalam Python, subproses boleh digunakan untuk melaksanakan pelbagai arahan sistem. Walaupun subproses sedemikian mungkin menyediakan kefungsian yang diperlukan, verbositi yang wujud boleh mengganggu output dan menghalang kebolehbacaan. Khususnya, pertimbangkan contoh yang diberikan oleh pengguna:

import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text])
Salin selepas log masuk

Dalam keadaan ini, eSpeak menjana output audio yang diingini tetapi juga menghasilkan mesej ralat yang tidak diingini. Cangkang yang berselerak ini boleh menyukarkan untuk mengakses atau mentafsir teks bercetak. Malangnya, tiada pilihan yang didokumenkan untuk melumpuhkan verbositi eSpeak.

Untuk menangani isu ini, Python menawarkan penyelesaian yang mudah untuk menyekat output subproses, membenarkan pengguna mengekalkan cangkerang yang bersih dan bebas kekacauan:

Penyelesaian:

Ubah hala output subproses ke DEVNULL menggunakan yang berikut kod untuk Python >= 3.3:

import os
import subprocess

retcode = subprocess.call(['echo', 'foo'], 
    stdout=subprocess.DEVNULL,
    stderr=subprocess.STDOUT)
Salin selepas log masuk

Untuk versi Python di bawah 3.3, termasuk 2.7, gunakan kod di bawah:

FNULL = open(os.devnull, 'w')
retcode = subprocess.call(['echo', 'foo'], 
    stdout=FNULL, 
    stderr=subprocess.STDOUT)
Salin selepas log masuk

Teknik ini mencerminkan perintah shell berikut dengan berkesan:

retcode = os.system("echo 'foo' > /dev/null")
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menindas Output yang Tidak Diingini daripada Subproses dalam Python?. 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