Seite 1 von 1

subprocess Argumentübergabe mit Leerzeichen

Verfasst: Samstag 18. September 2010, 21:38
von kniffeldi
Hallo,

ich möchte mit:

p=subprocess.Popen([prog,source,arg1,arg2], stdout=subprocess.PIPE)

ein Programm mit Argumenten aufrufen.
Mein Problem, in arg2 ist ein Leerzeichen, und der Rest ab dem Leerzeichen
wird als neues Argument interpretiert.
Das Leerzeichen muß aber bleiben, sonst funktioniert der Programmaufruf nicht richtig.
Wie kann man das lösen??

Vielen Dan schon im Vorraus
Marco

Re: subprocess Argumentübergabe mit Leerzeichen

Verfasst: Samstag 18. September 2010, 22:45
von Dauerbaustelle
Subprocess managed das richtig. Dein Problem ist ein anderes.

Re: subprocess Argumentübergabe mit Leerzeichen

Verfasst: Sonntag 19. September 2010, 08:27
von snafu
Wie lautet das auszuführende Kommando und was genau beim Programmaufruf funktioniert nicht richtig?

Übrigens, falls man mit der Aufteilung der Argumente nicht klar kommt oder das zu umständlich findet, kann man auch das in der Doku erwähnte `shlex.split()` benutzen:

Code: Alles auswählen

from shlex import split
from subprocess import PIPE, Popen

def get_output(command):
    proc = Popen(split(command), stdout=PIPE)
    output, errors = proc.communicate()
    return output

get_output('ls -l')
[...]

Re: subprocess Argumentübergabe mit Leerzeichen

Verfasst: Sonntag 19. September 2010, 11:53
von kniffeldi
Ich habe den Fehler gefunden.
Der Aufruf in der Shell lautet:
exiftool test.jpg '-DateTimeOriginal=2010:09:19 11:09:31'

Beim gleichen Aufruf mit popen wird 11:09:31 als 3.Argument interpretiert.
Nach dem Weglassen der Apostrophe funktioniert es auch mit popen.

Vielen Dank für Eure Hilfe!
Marco