os.path.isfile() funktioniert nicht (irgendwie)

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
yaem
User
Beiträge: 8
Registriert: Sonntag 19. Juni 2011, 21:52

Hallo,

ich bin dabei Python zu lernen. Soweit so gut, ich habe eine Datei "test.py" in der einfach nur steht:

Code: Alles auswählen

import os

print(os.path.isfile("./test.py"))
...ausgegeben wird aber "False". Klappen tuts nur, wenn ich "test.py" nach "D:/" kopiere und "os.path.isfile("D:/test.py")" abfrage. Also scheinen nur absolute Pfade zu gehen?!? Aber warum geht dann dashier wieder nicht?

Code: Alles auswählen

import os

print(os.path.isfile(os.path.abspath("test.py")))
print(os.path.isfile("D:/Dokumente und Einstellungen/Me/Eigene Dateien/Programming/Applications/Python/Test/test.py"))
False
True


...scheinbar gibt os.path.abspath() den Pfad mit '\\' anstatt mit '/' zurück, was aber wieder os.path.isfile nicht gefällt.

Kurze Frage: Wie kann ich Dateien mit relativen Pfadangaben auf Existenz prüfen ohne in os.path.abspath() alle '\\' mit '/' zu ersetzen.

Danke :)
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Bei mir funktionierts.

Welche Betriebssystem nutzt du denn?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
deets

Kann es sein, dass dein current-working-directory (das fuer sowas wie abspath und alle anderen relativen Pfaden relevant ist) *nicht* das Verzeichnis war, in dem die datei liegt?

Wirklich nicht funktionieren kann dieser Kram naemlich nicht. Dazu ist er erstens zu wichtig, und zweitens zu duenn als Schicht ueber dem OS.
yaem
User
Beiträge: 8
Registriert: Sonntag 19. Juni 2011, 21:52

Kann es sein, dass dein current-working-directory (das fuer sowas wie abspath und alle anderen relativen Pfaden relevant ist) *nicht* das Verzeichnis war, in dem die datei liegt?
Jut, es war so, dass ich zwar in meinem Editor das Arbeitsverzeichnis auf "./" gesetzt hatte, der das aber scheints falsch interpretierte. Arbeitsverzeichnis auf "%d" war dann die Lösung.

Wär ich so schnell nicht drauf gekommen, vor allem da os.path.abspath(".") ja das Verzeichnis in dem "test.py" lag zurückgegeben hat...

Jedenfalls, danke!
Antworten