Ответ 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:\
Как это.
У меня есть путь:
myPath = "C:\Users\myFile.txt"
Я хотел бы удалить конечный путь, чтобы строка содержала:
"C:\Users"
До сих пор я использую split, но он просто дает мне список, и я застрял на этом этапе.
myPath = myPath.split(os.sep)
Вы не должны манипулировать путями напрямую, для этого есть модуль 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:\
Как это.
Вы также можете использовать 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'
Текущий способ сделать это (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)