Moduł podprocesu Pythona znacznie wolniejszy niż polecenia (przestarzały)

Napisałem więc skrypt, który uzyskuje dostęp do wielu serwerów za pomocą nc w wierszu poleceń i początkowo korzystałem z modułu poleceń Pythona i wywoływałem command.getoutput (), a skrypt uruchomił się w około 45 sekund. Ponieważ polecenia są przestarzałe, chcę zmienić wszystko na użycie modułu podprocesu, ale teraz skrypt potrzebuje 2m45s do uruchomienia. Czy ktoś ma pojęcie, dlaczego tak będzie?

Co miałem wcześniej:

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

teraz mam

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

Z góry dziękuję za pomoc!

questionAnswers(2)

yourAnswerToTheQuestion