首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中将根目录和子目录与路径分开

如何在python中将根目录和子目录与路径分开
EN

Stack Overflow用户
提问于 2021-01-19 19:08:52
回答 1查看 35关注 0票数 1

列表中的路径:

代码语言:javascript
复制
pathlist=[3rdParty\metrics-server\Dockerfile,
3rdParty\node-problem-detector\Dockerfile,
3rdParty\oci-cloud\test\Dockerfile,
static-analysis\python-dependency-check\tests\unit\test_dockerfiles\real\kibana\Dockerfile]

我试过了

代码语言:javascript
复制
for path in pathlist:
    p=path.parent  #removes file name from path
    p=p.split('\', 1)

我甚至尝试过将路径转换为原始字符串,但不起作用,甚至我不能用任何其他字符替换'/‘

预期输出:

代码语言:javascript
复制
['3rdParty','metrics-server']
['3rdParty','node-problem-detector']
['3rdParty','oci-cloud\test']
['static-analysis', 'python-dependency-check\tests\unit\test_dockerfiles\real\kibana']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 19:34:37

使用pathlib,您应该执行如下操作。

它使用.parts属性可靠地将path.parent拆分成多个组件。您不应该使用目录分隔符。

然后,通过将其传递回pathlib.Path来重建路径的其余部分。

代码语言:javascript
复制
from pathlib import Path

for path in pathlist:
    parts = path.parent.parts
    res = [parts[0], str(Path(*parts[1:]))]
    print(res)

对于Windows,这将为您提供所需的输出:

代码语言:javascript
复制
['3rdParty', 'metrics-server']
['3rdParty', 'node-problem-detector']
['3rdParty', 'oci-cloud\test']
['static-analysis', 'python-dependency-check\tests\unit\test_dockerfiles\real\kibana']

在*NIX的情况下,你会得到这样的结果:

代码语言:javascript
复制
['3rdParty', 'metrics-server']
['3rdParty', 'node-problem-detector']
['3rdParty', 'oci-cloud/test']
['static-analysis', 'python-dependency-check/tests/unit/test_dockerfiles/real/kibana']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65790322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档