ImageMagic convert popen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
lunar

Daran ist "subprocess" nicht schuld. "subprocess" manipuliert nicht am übergebenen Kommando herum, schließlich kann das Modul gar nicht wissen, dass ein bestimmtes Element einen Pfad darstellen soll. Es übergibt alle Daten unverändert an den Prozess. Du musst schon selbst dafür sorgen, dass "workpath" korrekte Pfadtrenner enthält.
Shining-Blue
User
Beiträge: 37
Registriert: Samstag 15. August 2009, 04:36

Code: Alles auswählen

        if aktsys == 'win':
            workpath.replace("/","\\")
        print workpath
ergibt

Code: Alles auswählen

C:\Dokumente und Einstellungen\Lena\Desktop\aaaaa\
sieht ja ganz ok aus aber nun sieht die Ausgabe so aus

Code: Alles auswählen

convert "C:\Dokumente und Einstellungen\Lena\Desktop\aaaaa\test_1.JPG" -resize 3
20x "C:\Dokumente und Einstellungen\Lena\Desktop\aaaaa\test_1\thumb_test_1.JPG"
Unzulässiger Parameter - und
Da war es dann wieder, das Leerstellenproblem :(

LG SB
lunar

"os.sep" existiert. Außerdem halte ich diese Manipulation für unglücklich. Du solltest lieber von vorne herein dafür sorgen, dass "workpath" korrekt in das Programm "hineinkommt".

Die Fehlermeldung hat auch eher nichts mit Leerzeichen zu tun, sondern wohl damit, dass man unter Windows Optionen mit "/" und nicht mit "-" bezeichnet. Es müsste wohl eher "/resize" heißen.
Shining-Blue
User
Beiträge: 37
Registriert: Samstag 15. August 2009, 04:36

@lunar
Soll heißen statt

Code: Alles auswählen

temp = tkFileDialog.askdirectory(initialdir = workpath, title='Wähle den Arbeitsordner')
    if temp != ():
        workpath = str(temp) + '/'
        os.chdir(workpath)
eher

Code: Alles auswählen

temp = tkFileDialog.askdirectory(initialdir = workpath, title='Wähle den Arbeitsordner')
    if temp != ():
        workpath = os.path.abspath(str(temp) + '/')
        os.chdir(workpath)
um es einmal durch das path Modul zu jagen???

Übrigens: Wenn ich shell=True setze funktioniert es wieder, aber genau das will ich ja vermeiden.
Also die Parameterübergabe '-' ist auch unter Win scheinbar richtig

LG SB
Zuletzt geändert von Shining-Blue am Dienstag 25. August 2009, 14:13, insgesamt 1-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Die Fehlermeldung hat auch eher nichts mit Leerzeichen zu tun, sondern wohl damit, dass man unter Windows Optionen mit "/" und nicht mit "-" bezeichnet. Es müsste wohl eher "/resize" heißen.
Wobei das ja nur DOS-Konvention (oder gar CP/M) ist und das Programm ja jedes Beliebige Zeichen für Optionen benutzen kann. Ich habe zwar kein Windows, aber ich wäre verwundert wenn der Windows-Port von ImageMagick statt "-" wie unter Unices plötzlich "/" verwendet - das habe ich (damals) bei keinem einzigen Windows-Port jemals gesehen und ich hatte immer eine Menge Unix-Software auf dem System.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Shining-Blue
User
Beiträge: 37
Registriert: Samstag 15. August 2009, 04:36

@Leonidas
Ich glaub' es nicht - da kennt wer noch ChaosPerModem, den von Billiboy geklauten Urvater von DOSmußdochnichsein
problembär

... und manche können sich sogar noch an die Geschichte des DOSfish erinnern :lol:.
Antworten