Das Problem liegt im traditionellen Ansatz, der alle Stdout sammelt und es als einzige Antwort zurückgibt. Um dies zu überwinden, brauchen wir eine Möglichkeit, den STDOut kontinuierlich zu erfassen und zu streamen, wie das Skript ausgeführt wird.
Eine Lösung beinhaltet die Verwendung von Rohren, um die Echtzeitkommunikation zwischen dem Skript und dem Chat-Kanal zu erleichtern. Hier ist ein Python -Code -Snippet, das zeigt, wie das geht:
importieren Subprozess importieren Def Neustart (Befehl): process = subprocess.popen (Befehl, stdout = subprocess.pipe, Universal_Newlines = true) für line in proces.stdout: Ertragslinie Wenn __name__ == "__main__": Befehl = ["Python", "test.py"] Für Zeile im Neustart (Befehl): Print (Zeile)
In diesem Code wird die Funktion subprocess.popen () verwendet, um den angegebenen Befehl auszuführen. Der STDOut -Parameter wird auf subprocess.pipe eingestellt, um ein Rohr für die STDOut -Ausgabe zu erstellen. Das Argument von Universal_Newlines = True stellt sicher, dass die Ausgabe eher im Textformat als in Bytes zurückgegeben wird. Dieser Ansatz bietet eine kontinuierliche Methode zum Erfassen und Anzeigen von STDOut und erfüllt die Erfordernis der Echtzeitausführung.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3