Ich werde Python für meine zukünftige Arbeit benötigen, deshalb habe ich beschlossen, viele Python-Skripte zu erstellen.
Umgebung: python3
exec_shell.py
# coding: utf-8
"""wie benutzt man
exec_shell.Eine XML-Datei, die den Befehl py enthält
Analysieren Sie das Befehlstag in der XML-Datei, die den Befehl enthält
Skript, das den analysierten Befehl ausführt
"""
#Modulimport
from subprocess import Popen,PIPE
import xml.etree.ElementTree as et
import sys
#Variablendefinition
cmdfile=sys.argv[1]
tree=et.parse(cmdfile)
cmd=tree.find(".//code").text
#Funktionsdefinition
def main(cmd):
p=Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE)
result=p.communicate()
return result
#Hauptverarbeitung
if __name__ == '__main__':
result=main(cmd)
print('Standardausgabeergebnis: ' + str(result[0]))
print('Standardfehlerausgabeergebnis: ' + str(result[1]))
Im Moment scheint es normal zu sein, das Unterprozessmodul anstelle von "os.commands" zu verwenden. Es scheint, dass subprocess.call () nur den Rückgabewert des Befehls verarbeiten kann, daher werde ich Popen verwenden.
In diesem Skript wird das Standardausgabeergebnis in Ergebnis [0] und das Standardfehlerausgabeergebnis in Ergebnis [1] gespeichert.
Der auszuführende Befehl, einschließlich der Umleitung, wird in die Variable cmd eingefügt. Das heißt, wenn sich der Befehl ändert, müssen Sie nur die cmd-Variable ändern.
Wir planen, etwas mehr Fehlerbehandlung hinzuzufügen.
Recommended Posts