Maison  >  Article  >  développement back-end  >  Comment migrer de os.popen vers subprocess.popen() pour exécuter une commande ?

Comment migrer de os.popen vers subprocess.popen() pour exécuter une commande ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 07:56:02875parcourir

How to Migrate from os.popen to subprocess.popen() for Executing a Command?

Comment migrer de os.popen vers subprocess.popen() en Python

Question :

À la lumière du fait que os.popen est obsolète, comment puis-je convertir la commande suivante en subprocess.popen() :

os.popen('swfdump /tmp/filename.swf/ -d')

Réponse :

À convertissez la commande en subprocess.popen(), suivez ces étapes :

  1. Créez une liste d'arguments : subprocess.Popen prend une liste d'arguments en entrée, où le premier argument est le nom de la commande.
  2. Utilisez PIPE pour stdout et stderr : Les paramètres stdout et stderr spécifient respectivement où rediriger les flux de sortie et d'erreur. L'utilisation de PIPE nous permet de capturer la sortie.
  3. Communiquer avec le sous-processus : La méthode communicate() lit et renvoie la sortie capturée et les flux d'erreurs.

L'extrait de code suivant illustre la conversion :

<code class="python">from subprocess import Popen, PIPE

process = Popen(['swfdump', '/tmp/filename.swf', '-d'], stdout=PIPE, stderr=PIPE)
stdout, stderr = process.communicate()</code>

Remarque supplémentaire :

La documentation du sous-processus fournit une section dédiée intitulée « Migration depuis os.popen » qui propose des informations détaillées directives pour la transition de os.popen vers le sous-processus.

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!

Déclaration:
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