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

时间:2010-07-23 02:44:35

标签: python string

我有一条路:

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

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

"C:\Users"

到目前为止,我正在使用split,但它只是给了我一个列表,而且我现在陷入困境。

myPath = myPath.split(os.sep)

3 个答案:

答案 0 :(得分:66)

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

喜欢这个。

答案 1 :(得分:15)

您也可以使用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'

答案 2 :(得分:1)

当前执行此操作的方法(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)