Maison > développement back-end > Tutoriel Python > Comment puis-je utiliser le module « subprocess » de Python avec un délai d'attente ?

Comment puis-je utiliser le module « subprocess » de Python avec un délai d'attente ?

Susan Sarandon
Libérer: 2024-12-26 01:51:08
original
857 Les gens l'ont consulté

How Can I Use Python's `subprocess` Module with a Timeout?

Utilisation du module 'subprocess' avec Timeout

En programmation Python, il est souvent nécessaire d'exécuter des commandes arbitraires et de récupérer leur sortie. Le module 'subprocess' fournit des fonctions pratiques à cet effet, mais il ne prend pas en charge les délais d'attente. Cela peut constituer une limitation importante lorsque la commande doit s'exécuter pendant une période prolongée.

Le code suivant illustre une approche simple pour implémenter des délais d'attente en Python :

from subprocess import check_output

try:
    output = check_output(cmd, stderr=STDOUT, timeout=seconds)
except CalledProcessError as e:
    handle_error(e)
Copier après la connexion

La fonction check_output, introduit dans Python 3.3, permet à l'appelant de spécifier un délai d'attente en secondes. Si la commande dépasse la durée spécifiée, une exception CalledProcessError est levée. Le résultat de la commande est renvoyé dans la variable 'output' sous forme de chaîne d'octets.

Pour les utilisateurs de Python 2.x, le module de backport subprocess32 peut être utilisé pour fournir des fonctionnalités similaires.

Le La solution ci-dessus élimine le besoin de communication explicite avec le processus et fournit un mécanisme plus simple pour gérer les délais d'attente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal