J'aurai besoin de python pour mes futurs travaux, j'ai donc décidé de faire beaucoup de scripts python.
Environnement: python3
exec_shell.py
# coding: utf-8
"""comment utiliser
exec_shell.Un fichier xml contenant la commande py
Analyser la balise de commande dans le fichier xml qui contient la commande
Script qui exécute la commande analysée
"""
#Importation de module
from subprocess import Popen,PIPE
import xml.etree.ElementTree as et
import sys
#Définition variable
cmdfile=sys.argv[1]
tree=et.parse(cmdfile)
cmd=tree.find(".//code").text
#Définition des fonctions
def main(cmd):
p=Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE)
result=p.communicate()
return result
#Traitement principal
if __name__ == '__main__':
result=main(cmd)
print('Résultat de sortie standard: ' + str(result[0]))
print('Résultat de sortie d'erreur standard: ' + str(result[1]))
À l'heure actuelle, il semble normal d'utiliser le module de sous-processus au lieu d'utiliser "os.commands". Il semble que subprocess.call () ne puisse gérer que la valeur de retour de la commande, je vais donc utiliser Popen.
Dans ce script, le résultat de sortie standard est stocké dans result [0], et le résultat de sortie d'erreur standard est stocké dans result [1].
La commande à exécuter, y compris la redirection, est placée dans la variable cmd. Cela signifie que si la commande change, il vous suffit de modifier la variable cmd.
Nous prévoyons d'ajouter un peu plus de gestion des erreurs.
Recommended Posts