Seite 1 von 1

posixpath.join() funktioniert nicht richtig

Verfasst: Mittwoch 10. September 2008, 16:40
von Flo668
Ich verwende posixpath.join() um zwei Pfade aneinanderzukleben. Leider bekomme ich den Fehler:


File "CreateProj001.py", line 80, in __init__
self._importSequence()
File "CreateProj001.py", line 189, in _importSequence
dbpath = posixpath.join(dFolder, dbpath)
File "C:\Program Files\Autodesk\Autodesk Toxik 2009\python\lib\posixpath.py",
line 60, in join
if b.startswith('/'):
AttributeError: 'NoneType' object has no attribute 'startswith'
Kann man das irgendwie umgehen? Oder ist posixpath in Python 2.5.2 nicht zu gebrauchen?

Verfasst: Mittwoch 10. September 2008, 17:06
von BlackJack
Klar kann man das umgehen: Zeichenketten mit Pfadnamen statt `None` beim Aufruf verwenden.

Glaubst Du echt der Fehler liegt wahrscheinlicher in so einer grundlegenden Funktion als in Deinem Quelltext!?

Verfasst: Mittwoch 10. September 2008, 17:10
von Flo668
Na,ja...ich erwarte von solchen Funktionen zumindest dass da eine Fehlermeldung kommt, à la "Attribut XY ist None, kann Join nicht durchführen".

Aber Danke Dir, dann prüf ich halt ab, ob da was in dem string drin steht.

Verfasst: Mittwoch 10. September 2008, 17:25
von DasIch
Flo668 hat geschrieben:Na,ja...ich erwarte von solchen Funktionen zumindest dass da eine Fehlermeldung kommt, à la "Attribut XY ist None, kann Join nicht durchführen".

Aber Danke Dir, dann prüf ich halt ab, ob da was in dem string drin steht.
Die Fehlermeldung sagt dass schon und None ist kein string.

Re: posixpath.join() funktioniert nicht richtig

Verfasst: Donnerstag 11. September 2008, 15:31
von Leonidas
Flo668 hat geschrieben:Ich verwende posixpath.join() um zwei Pfade aneinanderzukleben.
Dazu sollte man, wenn es um Dateisystem-Pfade angeht os.path nutzen und nicht posixpath, welches von os.path auf POSIX-Systemen verwendet wird.

P.S.: Also für mich ist ja die Fehlermeldung deutlich genug, sie sagt ja was das Problem ist und liefert auch einen Traceback.