删除字符串中的最后一个路径组件

我有一条路:

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

我想删除结束路径,以便该字符串仅包含:

"C:\Users"

到目前为止,我正在使用split,但是它只给了我一个列表,而我此时停留在此。

myPath = myPath.split(os.sep)
Brock Woolf asked 2020-08-12T09:18:21Z
3个解决方案
71 votes

您不应该直接操作路径,它有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:\

像这样。

Daniel Kluev answered 2020-08-12T09:18:31Z
21 votes

您也可以这样使用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'
thefourtheye answered 2020-08-12T09:18:56Z
1 votes

当前的方法(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)

johnDanger answered 2020-08-12T09:19:25Z
translate from https://stackoverflow.com:/questions/3315045/remove-last-path-component-in-a-string