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)
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!