Was ist der Unterschied, wenn ich in subprocess.Popen () nicht stdout = subprocess.PIPE verwende?

Ich habe kürzlich in Python diesubprocess.Popen() hat ein Argument:

stdout=None(default)

Ich habe auch Leute gesehen, die stdout = subprocess.PIPE verwendet haben.

Was ist der Unterschied? Welches soll ich verwenden?

Eine andere Frage wäre, warum die wait () - Funktion nicht warten kann, bis der Prozess manchmal wirklich abgeschlossen ist. Ich benutzte:

a = sp.Popen(....,shell=True)
a.wait()
a2 = sp.Popen(...,shell=True)
a2.wait()

manchmal wird der Befehl a2 ausgeführt, bevor der Befehl a ausgeführt wird.