Python:分割硬编码路径

2024-09-28 01:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在python中拆分一条路径,然后删除最后两个级别。你知道吗

下面是一个示例,我要解析的路径。我想把它解析到6级。你知道吗

C:\Users\Me\level1\level2\level3\level4\level5\level6\level7\level8

下面是我想要的输出。目前,我只能升一级。你知道吗

C:\Users\Me\level1\level2\level3\level4\level5\level6\

a ="C:\Users\Me\level1\level2\level3\level4\level5\level6\level7\level8"
split_path=os.path.split(a)
print split_path

输出:

 ('C:\Users\Me\level1\level2\level3\level4\level5\level6\level7','level8')

Tags: path路径示例级别userssplitmelevel3
3条回答

您可以使用split函数两次:

os.path.split(os.path.split(a)[0])[0]

这是因为os.path.split()返回一个包含两个项的元组,head和tail,通过取其中的[0]我们将得到head。然后再次拆分并使用[0]再次获取第一项。你知道吗

或者将路径与父目录连接两次:

os.path.abspath(os.path.join(a, '..', '..'))

您可以轻松地创建一个函数,该函数将按您所需的步骤后退:

def path_split(path, steps):
    for i in range(steps + 1):
        path = os.path.split(path)[0]
    return path

所以呢

>>> path_split("C:\Users\Me\level1\level2\level3\level4\level5\level6\level7\level8", 2)
"C:\Users\Me\level1\level2\level3\level4\level5\level6\"

将路径拆分为所有部分,然后连接除最后两部分以外的所有部分。你知道吗

import os

seperator = os.path.sep
parts = string.split(seperator)
output = os.path.join(*parts[0:-2])

os.path.split(path)给出除了最后一个路径和元组中的最后一个路径之外的整个路径。如果你想去掉最后两个

os.path.split(os.path.split(your_path)[0])[0]

相关问题 更多 >

    热门问题