Was ist der Unterschied zwischenPython subprocess Popen Parameterdifferenz
subprocess.Popen(['cat','/path/to/file'], stdout=subprocess.PIPE, shell=True)
und
subprocess.Popen(['cat '+'/path/to/file'], stdout=subprocess.PIPE, shell=True)
? Ich mache das in Ipython. Für die erste, Ipython einfach hängen. Vielleicht nicht hängen, aber es ist deutlich langsamer. Die zweite ist nur OK.
Weiß einfach nicht warum.
Also meinst du für die erste, die zweite str in der Liste wird einfach ignoriert? – wliao
@wliao: lies das Zeug über 'shell = True'. Es wird die angegebene Zeichenfolge wie in der Shell ausgeführt. also, wenn überhaupt, ist es etwas überraschend, dass es überhaupt funktioniert, wenn man eine Liste bekommt. Es ist nicht empfehlenswert, "shell = True" zu setzen und eine Liste zu geben. –
'shell = True' ist sowohl allgemein böse als auch manchmal die Art, wie du es tun musst. Allerdings gibt es bei Ihrem Befehl keinen Grund, 'shell = True' zu setzen, wenn Sie den vollständigen Pfad zu Ihrer Datei angeben - geben Sie einfach den vollständigen Pfad zu' cat' an. –