Подтвердить что ты не робот

Удалить последний компонент пути в строке

У меня есть путь:

myPath = "C:\Users\myFile.txt"

Я хотел бы удалить конечный путь, чтобы строка содержала:

"C:\Users"

До сих пор я использую split, но он просто дает мне список, и я застрял на этом этапе.

myPath = myPath.split(os.sep)
4b9b3361

Ответ 1

Вы не должны манипулировать путями напрямую, для этого есть модуль os.path.

>>> import os.path
>>> print os.path.dirname("C:\Users\myFile.txt")
C:\Users
>>> print os.path.dirname(os.path.dirname("C:\Users\myFile.txt"))
C:\

Как это.

Ответ 2

Вы также можете использовать os.path.split, например

>>> import os
>>> os.path.split('product/bin/client')
('product/bin', 'client')

Он разбивает путь на две части и возвращает их в кортеж. Вы можете назначить значения в переменных, а затем использовать их, например,

>>> head, tail = os.path.split('product/bin/client')
>>> head
'product/bin'
>>> tail
'client'

Ответ 3

Текущий способ сделать это (Python> 3.4) - использовать модуль pathlib.

>>> import pathlib
>>> path = pathlib.Path(r"C:\Users\myFile.txt")
>>> path.parent
WindowsPath('C:/Users')
>>> print(path.parent)
C:\Users

Это дает дополнительное преимущество, заключающееся в кроссплатформенности, поскольку pathlib сделает объект пути подходящим для текущей операционной системы (я использую Windows 10)