Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menambah Masa Tamat pada Panggilan Subproses dalam Python?

Bagaimanakah Saya Boleh Menambah Masa Tamat pada Panggilan Subproses dalam Python?

DDD
Lepaskan: 2024-12-14 02:33:09
asal
175 orang telah melayarinya

How Can I Add a Timeout to Subprocess Calls in Python?

Menggunakan Modul Subproses dengan Kefungsian Tamat Masa

Keperluan untuk subproses melengkapkan pelaksanaannya dalam jangka masa yang telah ditetapkan sering timbul dalam pengaturcaraan. Walaupun modul subproses menawarkan mekanisme yang teguh untuk melaksanakan perintah, modul ini sememangnya tidak mempunyai keupayaan tamat masa.

Untuk menangani had ini, Python 3.3 dan seterusnya menyediakan fungsi check_output dalam modul subproses. Fungsi ini bukan sahaja mengambil data stdout daripada arahan tetapi juga menimbulkan pengecualian apabila proses melebihi tamat masa yang ditentukan.

from subprocess import STDOUT, check_output

# Set the timeout in seconds
timeout = 5

try:
    # Execute the command with the specified timeout
    output = check_output(cmd, stderr=STDOUT, timeout=timeout)
except CalledProcessError as e:
    # Handle the error if the process fails with a non-zero exit status
    pass

# Process the merged stdout/stderr data contained in the output variable
Salin selepas log masuk

Dalam kod ini, pembolehubah tamat masa menentukan masa pelaksanaan maksimum yang dibenarkan untuk arahan. check_output memastikan proses menamatkan dan mengembalikan output stdout/stderr gabungan dalam jangka masa yang ditetapkan.

Sebagai alternatif, untuk pengguna Python 2.x, subprocess32 backport modul subprocess menawarkan fungsi yang sama. Backport ini menyediakan penyelesaian yang setara dengan check_output, membenarkan pelaksanaan perintah yang menyedari tamat masa di bawah Python 2.x.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Masa Tamat pada Panggilan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan