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

file operation

Beitragvon The Spirit » Mittwoch 10. Oktober 2007, 15:03

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

Beitragvon BlackJack » Mittwoch 10. Oktober 2007, 15:19

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: 274
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Beitragvon The Spirit » Mittwoch 10. Oktober 2007, 16:16

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:

Beitragvon schlangenbeschwörer » Mittwoch 10. Oktober 2007, 16:52

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: 274
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Beitragvon The Spirit » Donnerstag 11. Oktober 2007, 07:36

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:

Beitragvon schlangenbeschwörer » Donnerstag 11. Oktober 2007, 18:15

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

Beitragvon sea-live » Mittwoch 20. Februar 2008, 21:51

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

Beitragvon BlackJack » Mittwoch 20. Februar 2008, 23:23

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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder