Wie entferne ich Windows-Konsolen aus gespawnten Prozessen in Python (2.7)? [Duplikat

Mögliches Duplizieren:
Ausführen eines Prozesses in pythonw mit Popen ohne Konsole

Ich verwende Python 2.7 unter Windows, um Stapel-RAW-Konvertierungen mit dcraw und PIL zu automatisieren.

Das Problem ist, dass ich bei jedem Ausführen von dcraw eine Windows-Konsole öffne (was alle paar Sekunden geschieht). Wenn ich das Skript als .py-Datei ausführe, ist dies weniger ärgerlich, da nur das Hauptfenster geöffnet wird. Ich würde es jedoch vorziehen, nur die GUI zu präsentieren.

Ich beziehe es so ein:

args = [this.dcraw] + shlex.split(DCRAW_OPTS) + [rawfile]
proc = subprocess.Popen(args, -1, stdout=subprocess.PIPE)
ppm_data, err = proc.communicate()
image = Image.open(StringIO.StringIO(ppm_data))

ielen Dank an Ricardo Rey

Minor Revision zu diesem Rezept, in 2.7 scheint es, dass Sie @ bekommen müssSTARTF_USESHOWWINDOW von_subprocess (Sie könnten auch @ verwendpywin32 Wenn Sie etwas wollen, das möglicherweise weniger anfällig für Änderungen ist), dann für die Nachwelt:

suinfo = subprocess.STARTUPINFO()
suinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(args, -1, stdout=subprocess.PIPE, startupinfo=suinfo)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage