Unter python Nehmen wir an, ich habe einen Weg wie diesen:
/folderA/folderB/folderC/folderD/
Wie kann ich nur die folderD
Teil?
Unter python Nehmen wir an, ich habe einen Weg wie diesen:
/folderA/folderB/folderC/folderD/
Wie kann ich nur die folderD
Teil?
Verwenden Sie os.path.normpath
dann os.path.basename
:
>>> os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/'))
'folderD'
Im ersten Fall werden alle nachfolgenden Schrägstriche entfernt, im zweiten Fall erhalten Sie den letzten Teil des Pfades. Wenn Sie nur basename
gibt alles nach dem letzten Schrägstrich, der in diesem Fall ''
.
Mit Python 3 können Sie die pathlib
Modul ( pathlib.PurePath
zum Beispiel):
>>> import pathlib
>>> path = pathlib.PurePath('/folderA/folderB/folderC/folderD/')
>>> path.name
'folderD'
Wenn Sie den Namen des letzten Ordners wissen wollen, in dem sich eine Datei befindet:
>>> path = pathlib.PurePath('/folderA/folderB/folderC/folderD/file.py')
>>> path.parent.name
'folderD'
Sie könnten Folgendes tun
>>> import os
>>> os.path.basename('/folderA/folderB/folderC/folderD')
UPDATE1: Dieser Ansatz funktioniert, wenn Sie /OrdnerA/OrdnerB/OrdnerC/OrdnerD/xx.py angeben. Dies ergibt xx.py als Basisnamen. Das ist nicht das, was Sie wollen, nehme ich an. Sie könnten also so vorgehen -
>>> import os
>>> path = "/folderA/folderB/folderC/folderD"
>>> if os.path.isdir(path):
dirname = os.path.basename(path)
UPDATE2: Wie Lars schon sagte, sollten Änderungen vorgenommen werden, um die nachgestellten '/' zu berücksichtigen.
>>> from os.path import normpath, basename
>>> basename(normpath('/folderA/folderB/folderC/folderD/'))
'folderD'
Hier ist mein Ansatz:
>>> import os
>>> print os.path.basename(
os.path.dirname('/folderA/folderB/folderC/folderD/test.py'))
folderD
>>> print os.path.basename(
os.path.dirname('/folderA/folderB/folderC/folderD/'))
folderD
>>> print os.path.basename(
os.path.dirname('/folderA/folderB/folderC/folderD'))
folderC
Ich habe nach einer Lösung gesucht, um den letzten Ordnernamen zu erhalten, in dem sich die Datei befindet, ich habe einfach split
zwei Mal, um das richtige Teil zu bekommen. Es ist nicht die Frage, aber Google hat mich hierher gebracht.
pathname = "/folderA/folderB/folderC/folderD/filename.py"
head, tail = os.path.split(os.path.split(pathname)[0])
print(head + " " + tail)
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.