Seite 1 von 1

dateinamen beibehalten, dateiendung verändern

Verfasst: Montag 18. Oktober 2004, 12:00
von pr0stAta
So, lustige überschrift, aber besseres fiel mir nicht ein :P
mein problem ist folgendes:
hab ein programm, was aus vektor grafiken über ghostscript
jpgs machen soll. dazu brauch ich die dateiendung und das, was davor steht.
die endung soll geändert werden, was kein problem ist, aber wie komme ich an den dateinamen ohne die endung ran? habe es mit split versucht, doch nun weiss ich nicht, wie ich den namen in eine variable kriege :>

Code: Alles auswählen

#Python

#Eps konvertieren
import string, os, re

def changeDir():
    for file in os.listdir("c:\convert"):
        a = file
        b = os.path.splitext(a)
        print b
        gh = "C:\gs\gs8.13\bin\gswin32.exe"
        befehl = "-dSAFER -dBATCH -dNOPAUSE -dNOPAGEPROMPT -dSTRICT -dEPSCrop -dQUIET -sDEVICE=jpeg -sOutputFile=DATEI.jpg DATEI.eps -c quit"
        os.system(gh+befehl)

def main():
    changeDir()
 
if __name__ == "__main__":
    main()
ausgabe von b ist zur zeit so:
('OVAP10B752028B01A3V', '.eps')
('OVAP10B752028B02A8V', '.eps')
('OVAP10B752028B05V', '.eps')
('OVAP10B752028B06A2V', '.eps')
('OVAP10B752028B07A8V', '.eps')
wie komme ich nun an OVAP10B etc ran :>
mfg prosta

Verfasst: Montag 18. Oktober 2004, 12:02
von Vortec
Dateiname: b[0]
Endung: b[1]

Verfasst: Montag 18. Oktober 2004, 12:03
von pr0stAta
wah das war zu einfach für mich ^^
muchas gracias vortec :D

Verfasst: Montag 18. Oktober 2004, 12:04
von Gast
mit

Code: Alles auswählen

print b[0]

Verfasst: Montag 18. Oktober 2004, 15:42
von pr0stAta
ok weiteres problem.

Code: Alles auswählen

#Python

#Eps konvertieren
import string, os, re

def changeDir():
    for file in os.listdir("c:\convert"):
        a = file
        b = os.path.splitext(a)
        gh = "C:\gs\gs8.13\bin\gswin32.exe"
        befehl = " -dSAFER -dBATCH -dNOPAUSE -dNOPAGEPROMPT -dSTRICT -dEPSCrop -dQUIET -sDEVICE=jpeg -sOutputFile="+b[0]+".jpg "+b[0]+".eps -c quit"
        os.system(gh + befehl)

def main():
    changeDir()
       
if __name__ == "__main__":
    main()
wenn ich das programm starte kommt:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

mir ist klar, das dies direkt ein fehler vom ghostscript ist, aber
der fehler entsteht durch das python script. ich hab allerdings keine
ahnung was an dem code falsch ist,. bräuchte wieder einmal hilfe :/
*meine vermutung, das +b[0]+ scheint falsch zu sein :>

Verfasst: Montag 18. Oktober 2004, 15:51
von Dookie
Hi prOstAta,

mach mal ein print befehl nach der Zeile wo du den Ghoststriptaufruf zusammenbaust, also vor der Zeile mit os.system(...).


Gruß

Dookie

Verfasst: Montag 18. Oktober 2004, 15:57
von pr0stAta
hu dookie
er gibt dort alles aus, sei es ne variable oder normalen text.
2. vermutung, das os.system command funktioniert anders oO
denn wenn ich os.system(gh) benutzen will, macht er auch nichts, obwohl
er doch die exe öffnen sollte oder irre ich da?
ok problem waren die \ irgendwie... habe einfach überall \\
geschrieben und es ging. danke an kk (irc :P)

Verfasst: Montag 18. Oktober 2004, 17:03
von Dookie
mit dem print hättest du die \\ wohl gesehen \ ist bei Python ja das escape Zeichen z.B. \t oder \n darum macht er bei \ ein \\ draus bei normalen strings.


Gruß

Dookie