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?
Wenn Sie das native Python-Paket verwenden pathlib Es ist ganz einfach.
>>> from pathlib import Path
>>> your_path = Path("/folderA/folderB/folderC/folderD/")
>>> your_path.stem
'folderD'
Angenommen, Sie haben den Pfad zu einer Datei in OrdnerD.
>>> from pathlib import Path
>>> your_path = Path("/folderA/folderB/folderC/folderD/file.txt")
>>> your_path.name
'file.txt'
>>> your_path.parent
'folderD'
Ich mag die Teile Methode von Path für diese:
grandparent_directory, parent_directory, filename = Path(export_filename).parts[-3:]
log.info(f'{t: <30}: {num_rows: >7} Rows exported to {grandparent_directory}/{parent_directory}/{filename}')
Bei meinen aktuellen Projekten übergebe ich oft hintere Teile eines Pfades an eine Funktion und verwende daher die Path
Modul. Um den n-ten Teil in umgekehrter Reihenfolge zu erhalten, verwende ich:
from typing import Union
from pathlib import Path
def get_single_subpath_part(base_dir: Union[Path, str], n:int) -> str:
if n ==0:
return Path(base_dir).name
for _ in range(n):
base_dir = Path(base_dir).parent
return getattr(base_dir, "name")
path= "/folderA/folderB/folderC/folderD/"
# for getting the last part:
print(get_single_subpath_part(path, 0))
# yields "folderD"
# for the second last
print(get_single_subpath_part(path, 1))
#yields "folderC"
Um den n-ten Teil eines Pfades, der den restlichen Pfad enthält, in umgekehrter Reihenfolge weiterzugeben, verwende ich außerdem:
from typing import Union
from pathlib import Path
def get_n_last_subparts_path(base_dir: Union[Path, str], n:int) -> Path:
return Path(*Path(base_dir).parts[-n-1:])
path= "/folderA/folderB/folderC/folderD/"
# for getting the last part:
print(get_n_last_subparts_path(path, 0))
# yields a `Path` object of "folderD"
# for second last and last part together
print(get_n_last_subparts_path(path, 1))
# yields a `Path` object of "folderc/folderD"
Beachten Sie, dass diese Funktion eine Path
Objekt, das leicht in eine Zeichenkette umgewandelt werden kann (z. B. str(path)
)
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.