file operation

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.
Antworten
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

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
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')
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

thx

werd ich gleich mal testen

das mit dem \ hab ich schon gesehen. aber mehrere variationen haben keinen erfolg gebracht :cry:
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

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?)
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

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... ?
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

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.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

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')
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.
Antworten