首页 > 解决方案 > 拆分不同的路径结构通用 - Python

问题描述

一开始,我的路径总是具有相同的结构:projectnumber/moduleXY/src/test.py并且我总是将模块拆分为:

splitted_path = project_path.split(os.sep) 
module = splitted_path[1]

现在我必须通用,因为我不知道我的路径的维度。而且我的一些路径没有任何模块,所以我不得不采取另一个吐出的部分,例如

例如:

projectnumber/ID/TestCASE/doc/documentation.txt--> save TestCase 
projectnumber/module1/spec/req.rst-> save module1
newProjectname/ID/Product/doc/documentation.txt-> save Product

我真的不知道该怎么做,因为我不能再使用splitted_path[1]了,因为我不知道模块、组件或产品是否在[1]数组中。

你有什么主意吗?

标签: pythonpython-3.xpath

解决方案


您还可以从右到左索引,例如:

project_path = "projectnumber/ID/TestCASE/doc/documentation.txt"
splitted = project_path.split(os.sep) 
module = splitted[-3]

在这种情况下,这相当于:

module = splitted[2]

或者,您也可以使用pathlib

from pathlib import Path

path = Path("projectnumber/ID/TestCASE/doc/documentation.txt")

module_path = path.parent.parent.name

# path.parent -> Path("projectnumber/ID/TestCASE/doc")
# path.parent.parent -> Path("projectnumber/ID/TestCASE")
# path.parent.parent.name -> "TestCASE"

推荐阅读