Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh menyekat Output Subproses dalam Python?

Bagaimanakah saya boleh menyekat Output Subproses dalam Python?

Susan Sarandon
Lepaskan: 2024-12-16 19:22:11
asal
571 orang telah melayarinya

How Can I Suppress Subprocess Output in Python?

Penindasan Output Subproses

Apabila menggunakan atur cara luar menggunakan perpustakaan subproses Python, output konsol mereka boleh menjadi kacau ganggu, terutamanya untuk aplikasi bertele-tele seperti eSpeak. Isu ini timbul apabila eSpeak mengeluarkan mesej diagnostik bersama audio yang dimaksudkan, mengacaukan shell dan menghalang interaksi seterusnya.

Untuk menangani masalah ini, kami boleh menggunakan teknik yang dikenali sebagai pengalihan keluaran. Dalam Python >= 3.3, peranti DEVNULL boleh digunakan untuk mengubah hala kedua-dua output standard dan aliran ralat ke destinasi nol, dengan berkesan menyenyapkannya:

import os
import subprocess

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

Untuk Python < 3.3, termasuk 2.7, pendekatan berikut boleh digunakan:

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

Kaedah ini bersamaan dengan menjalankan arahan shell berikut:

retcode = os.system("echo 'foo' > /dev/null")

Teknik ini memastikan output yang tidak diingini daripada eSpeak ditindas, menjadikan cangkerang bersih dan bersedia untuk interaksi pengguna selanjutnya.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyekat Output 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