python - 拆分不同的路径结构通用 - 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]
数组中。
你有什么主意吗?
解决方案
您还可以从右到左索引,例如:
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"
推荐阅读
- python - 如何向dict键添加多个值?
- amazon-web-services - 使用备用域名和自定义 SSL 在 CloudFront 后面访问被拒绝的 S3 存储桶
- c++ - 具有多个参数的 masm x64 上的 Printf
- forms - 从一个表单中插入同一个实体 3 次
- arrays - array3d 和 array2d 之间的荒谬性能差异
- android - 如何使用实现 'com.google.firebase:firebase-auth:16.0.3:15.0.0' 不起作用
- reactjs - 如何使用 GraphQL、Firebase 和 Gatsby 查询关系数据
- angularjs - 为多个数组动态添加输入
- html - 对齐卡片内的复选框
- apache-kafka - 如何发现和过滤 Kafka Streams 中的重复记录