Seite 1 von 1

file operation

Verfasst: Mittwoch 10. Oktober 2007, 15:03
von The Spirit
HI.
Ich werte gerade automatisiert logfiles aus.
Das Ergebnisfile soll jedoch zwei zwei Ordnerstrukturen höher liegen und dann in nen Ordner gepackt werden, der mittels einer Variable übergeben wird.
So sieht das bisher bei mir aus:

Code: Alles auswählen

ziel = open("..\..\" + temp + "\" logfile_1 + '_auswertung_test.xls', 'w')
Das klappt leider so noch nicht.
Und was mir zusätzlich noch fehlt, wäre eine überprüfung ob der Ordner in der Variable temp schon existiert. Wenn ja, dann file einfach reinschreiben, wenn nein, ordner anlegen.
Hoffe ihr habt ein paar Tips für mich.
Thx

Verfasst: Mittwoch 10. Oktober 2007, 15:19
von BlackJack
Wie Du am Syntaxhighlighting siehst, ist Deine Zeichenkette bei \" nicht zuende weil der Backslash eine besondere Bedeutung hat um Zeichen zu "escapen". Plattformunabhängig sollte es so gehen:

Code: Alles auswählen

import os

filename = logfile_1 + '_auswertung.xls'
path = os.path.join(os.path.pardir, os.path.pardir, 'temp')
try:
    os.mkdir(path)
except OSError:
    pass
ziel = open(os.path.join(path, filename), 'wb')

Verfasst: Mittwoch 10. Oktober 2007, 16:16
von The Spirit
thx

werd ich gleich mal testen

das mit dem \ hab ich schon gesehen. aber mehrere variationen haben keinen erfolg gebracht :cry:

Verfasst: Mittwoch 10. Oktober 2007, 16:52
von schlangenbeschwörer
Du musst den \ auch vor das zu escapende Zeichen schreiben. Wenn du Dann den String noch abschließen willst, haste halt \""

Code: Alles auswählen

ziel = open("..\..\"" + temp + "\"logfile_1" + '_auswertung_test.xls', 'w')
(ist einer der zwei letzten path-teile variabel?)

Verfasst: Donnerstag 11. Oktober 2007, 07:36
von The Spirit
schlangenbeschwörer hat geschrieben:Du musst den \ auch vor das zu escapende Zeichen schreiben. Wenn du Dann den String noch abschließen willst, haste halt ""

Code: Alles auswählen

ziel = open("..\.."" + temp + ""logfile_1" + '_auswertung_test.xls', 'w')
(ist einer der zwei letzten path-teile variabel?)
eigentlich sollte nur das temp variabel sein.
du meinst wegen dem + zwischen logfile_1 und _auswertung... ?

Verfasst: Donnerstag 11. Oktober 2007, 18:15
von schlangenbeschwörer
The Spirit hat geschrieben:du meinst wegen dem + zwischen logfile_1 und _auswertung... ?
Zumeinen wegen dem +, zum anderen wegen den Singlequotes.
Pfadnamen mit Leerzeichen sind ja auch seltener, vom ' ganz zu schweigen.

Verfasst: Mittwoch 20. Februar 2008, 21:51
von sea-live
ich habe damit auch schwirigkeiten

wie lege ich den pfad korekt an

Code: Alles auswählen

import os

path = os.path.join("C:\\boerse\\tecdax\\")
        try:
           os.mkdir(path)
        except OSError:
           pass
so geht das nicht
ausgabe ist
f = file("C:\\boerse\\tecdax\\%s.csv"%(symbol_liste[x]), 'w')

Verfasst: Mittwoch 20. Februar 2008, 23:23
von BlackJack
Was heisst so geht das nicht? Wieso wird der `OSError` einfach ignoriert? Wäre vielleicht interessant was da so als Nachricht in der Ausnahme steht, wenn sie ausgelöst wird.