Maison >développement back-end >Tutoriel Python >Comment capturer et attribuer la sortie d'une commande système à une variable en Python sans affichage à l'écran ?

Comment capturer et attribuer la sortie d'une commande système à une variable en Python sans affichage à l'écran ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-17 18:49:20432parcourir

How to Capture and Assign System Command Output to a Variable in Python without Screen Display?

Attribuer la sortie de os.system à une variable tout en supprimant l'affichage à l'écran

En Python, os.system est utilisé pour exécuter une commande système et renvoie une valeur indiquant l'état de sortie de la commande. Cependant, le résultat de la commande est généralement affiché à l'écran. Cela peut ne pas être souhaitable dans certaines situations.

Pour attribuer la sortie de la commande à une variable et empêcher son affichage à l'écran, vous pouvez utiliser la fonction os.popen() au lieu de os.system. os.popen() renvoie un objet tube que vous pouvez utiliser pour lire le résultat de la commande.

import os

# Use os.popen to capture the output of the command
popen_object = os.popen('cat /etc/services')

# Read the output from the pipe object
output = popen_object.read()

# Print the output, which will not be displayed on the screen
print(output)

Vous pouvez également utiliser la classe subprocess.Popen plus puissante pour gérer et communiquer avec les sous-processus. Voici comment vous obtiendriez le même résultat en utilisant subprocess.Popen :

import subprocess

# Create a subprocess object
proc = subprocess.Popen(['cat', '/etc/services'], stdout=subprocess.PIPE)

# Communicate with the subprocess and retrieve its output
output, _ = proc.communicate()

# Print the output, which will not be displayed on the screen
print(output)

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