mit dieser Zeile:
Code: Alles auswählen
pathdir = '%s\%s' % (os.getcwd() , self.GetItemText(self.GetFocusedItem()))
Andreas
Code: Alles auswählen
pathdir = '%s\%s' % (os.getcwd() , self.GetItemText(self.GetFocusedItem()))
Dafür hat Python os.path.join vorgesehenandreaszdw hat geschrieben:Hallo,
mit dieser Zeile:
erstelle ich einen Pfad. Mit dem Trennzeichen "\" funktioniert es unter Windows, das ich den neuen Pfad zum Verzeichniswechsel benutzen kann. Unter Linux klappt es nicht. Da muss ich als Trennzeichen "/" benutzen. Wie kriege ich das hin, das unter Linux oder Windows der jeweils richtige Trenner genommen wird?Code: Alles auswählen
pathdir = '%s\%s' % (os.getcwd() , self.GetItemText(self.GetFocusedItem()))
Andreas
Code: Alles auswählen
pathdir = os.path.join(os.getcwd(), self.GetItemText(self.GetFocusedItem()))
Code: Alles auswählen
pathdir = '%s%s%s' % (os.getcwd(), os.sep, self.GetItemText(self.GetFocusedItem()))
Die erste Idee war die bessereFrancesco hat geschrieben: oder du holst dir den separator os.sepCode: Alles auswählen
pathdir = '%s%s%s' % (os.getcwd(), os.sep, self.GetItemText(self.GetFocusedItem()))
Code: Alles auswählen
In [483]: '%s%s%s' % ('foo/', os.path.sep, '/bar')
Out[483]: 'foo///bar'
In [484]: os.path.join('foo/', '/bar')
Out[484]: '/bar'
Code: Alles auswählen
>>> os.path.join('images\\', r'C:\foo')
'C:\\foo'
Was ich mich frage, ist warum das so gemacht wird. Das erinnert mich, wie schon angesprochen, gewissermaßen an ein simuliertes Verzeichniswechseln. Quasi das Endresultat, das bei einer Folge von `chdir()`-Aufrufen herauskommen würde.If any component is an absolute path, all previous components (on Windows, including the previous drive letter, if there was one) are thrown away, and joining continues.