📜  python 在级别拆分路径 - Python (1)

📅  最后修改于: 2023-12-03 15:34:10.758000             🧑  作者: Mango

Python 在级别拆分路径

在 Python 中,我们常常需要对文件路径进行操作,其中一个常见的需求就是将完整路径拆分成各个级别,以便更方便地对路径进行处理。

下面介绍几种不同的方法来实现这一目标。

方法一:使用 os 模块
import os

path = "/Users/username/Documents/Projects/FileProcessing/example.txt"
path_arr = []
while True:
    path, folder = os.path.split(path)
    if folder != "":
        path_arr.insert(0, folder)
    else:
        if path != "":
            path_arr.insert(0, path)
        break

print(path_arr)

上面的代码中,我们使用了 Python 内置的 os.path.split() 方法,将路径从后往前逐个拆分,直到拆分到最后一级为止。由于路径的拼接顺序是从后往前的,因此我们在将拆分结果存储在一个列表中时,需要不断在列表头部插入,以保证拼接顺序正确。

经过拆分后,path_arr 将包含完整路径的各个级别。

方法二:使用 pathlib 模块
from pathlib import Path

path = "/Users/username/Documents/Projects/FileProcessing/example.txt"
path_arr = []
while path != "/":
    path_arr.insert(0, Path(path).name)
    path = str(Path(path).parent)

print(path_arr)

这段代码使用了 Python 3.4 及以上版本中的 pathlib 模块,相较于前面的做法来说更加简便。我们使用 Path 对象来代表路径,然后使用 name 属性获取当前路径的最后一级,再使用 parent 属性获取当前路径的上一级,直至到达根目录为止。

经过拆分后,path_arr 将包含完整路径的各个级别。

方法三:使用 split() 方法
path = "/Users/username/Documents/Projects/FileProcessing/example.txt"
path_arr = path.split("/")
path_arr = path_arr[1:]

print(path_arr)

这个方法比较简单,我们直接使用 split() 方法将路径按照 “/” 进行拆分,然后去掉第一个空白项即可。

由于这种方法没有进行路径的规范化处理,可能会导致一些问题。

经过拆分后,path_arr 将包含完整路径的各个级别。

以上三种方法可以满足大多数对路径级别拆分的需求,使用时可以根据实际情况进行选择。