posixpath.join() funktioniert nicht richtig

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
Flo668
User
Beiträge: 39
Registriert: Mittwoch 23. Juli 2008, 10:41

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?
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!?
Flo668
User
Beiträge: 39
Registriert: Mittwoch 23. Juli 2008, 10:41

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten