#python #path
Вопрос:
Допустим , у меня есть путь fodler1/folder2/folder3
, и я заранее не знаю имен папок.
Как я могу удалить первую часть этого пути, чтобы получить только folder2/folder3
?
Ответ №1:
Использовать str.split
с 1
в качестве maxsplit
аргумента:
path = "folder1/folder2/folder3"
path.split("/", 1)[1]
# 'folder2/folder3'
Если там ничего /
нет, вы могли бы быть в большей безопасности с:
path.split("/", 1)[-1] # pick the last of one or two tokens
но это зависит от вашей желаемой логики в этом случае.
Для лучшей переносимости в разных системах вы можете заменить косую "/"
черту на os.path.sep
:
import os
path.split(os.path.sep, 1)[1]
Ответ №2:
Вы можете использовать pathlib.Path
для этого:
from pathlib import Path
p = Path("fodler1/folder2/folder3")
И либо объединить все parts
, кроме первого:
new_path = Path(*p.parts[1:])
Или создайте путь relative_to
в первой части:
new_path = p.relative_to(p.parts[0])
Этот код не требует знания разделителя путей и работает для всех pathlib
поддерживаемых платформ (Python >= 3.4).