Python-Unterprozessmodul viel langsamer als Befehle (veraltet)

Also habe ich ein Skript geschrieben, das mit nc in der Befehlszeile auf eine Reihe von Servern zugreift. Ursprünglich habe ich das Befehlsmodul von Python verwendet und command.getoutput () aufgerufen, und das Skript wurde in ungefähr 45 Sekunden ausgeführt. Da Befehle veraltet sind, möchte ich alles auf die Verwendung des Unterprozessmoduls umstellen, aber jetzt dauert die Ausführung des Skripts 2 Minuten und 45 Minuten. Hat jemand eine Idee, warum das so ist?

Was ich vorher hatte:

output = commands.getoutput("echo get file.ext | nc -w 1 server.com port_num")

jetzt habe ich

p = Popen('echo get file.ext | nc -w 1 server.com port_num', shell=True, stdout=PIPE)
output = p.communicate()[0]

Vielen Dank im Voraus für die Hilfe!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage