相关疑难解决方法(0)

如何在python中删除路径前缀?

我想知道什么是pythonic函数:

我想删除wa路径前的所有内容.

p = path.split('/')
counter = 0
while True:
    if p[counter] == 'wa':
        break
    counter += 1
path = '/'+'/'.join(p[counter:])
Run Code Online (Sandbox Code Playgroud)

例如,我想'/book/html/wa/foo/bar/'成为'/wa/foo/bar/'.

python string path prefix

53
推荐指数
3
解决办法
3万
查看次数

如何规避Python的os.path.commonprefix的谬误?

我的问题是找到给定文件集的公共路径前缀.

从字面上看,我期待"os.path.commonprefix"可以做到这一点.不幸的是,commonprefix位于其中的事实path相当具有误导性,因为它实际上将搜索字符串前缀.

对我来说问题是,如何才能真正解决路径?在这个(相当高的评级)答案中简要提到了这个问题,但仅作为附注并且提议的解决方案(对commonprefix的输入附加斜线)imho存在问题,因为它将失败例如:

os.path.commonprefix(['/usr/var1/log/', '/usr/var2/log/'])
# returns /usr/var but it should be /usr
Run Code Online (Sandbox Code Playgroud)

为了防止其他人陷入同一个陷阱,可能值得在一个单独的问题中讨论这个问题:是否有一个简单/可移植的解决方案,不依赖于对文件系统的讨厌检查(即访问结果) commonprefix并检查它是否是一个目录,如果没有返回os.path.dirname结果)?

python path prefix

18
推荐指数
3
解决办法
3733
查看次数

将pathlib的relative_to用于同一级别的目录

python库pathlib提供Path.relative_to.如果一个路径是另一个路径的子路径,此函数可以正常工作,如下所示:

In [12]: from pathlib import Path
In [13]: foo = Path("C:\\foo")
In [14]: bar = Path("C:\\foo\\bar")
In [15]: bar.relative_to(foo)
Out[15]: WindowsPath('bar')
Run Code Online (Sandbox Code Playgroud)

但是,如果两个路径在同一级别上,relative_to则不起作用.

In [16]: baz = Path("C:\\baz")
In [17]: foo.relative_to(baz)
--------------------------------------------------------------------------
ValueError: 'C:\\foo' does not start with 'C:\\baz'
Run Code Online (Sandbox Code Playgroud)

我希望结果如此

WindowsPath("..\\baz")
Run Code Online (Sandbox Code Playgroud)

该函数os.path.relpath正确执行此操作:

In [18]: import os
In [19]: foo = "C:\\foo"
In [20]: bar = "C:\\bar"
In [21]: os.path.relpath(foo, bar)
Out[21]: '..\\foo'
Run Code Online (Sandbox Code Playgroud)

有没有办法实现的功能os.path.relpath使用pathlib.Path

python pathlib

17
推荐指数
2
解决办法
2400
查看次数

如何找到两个目录之间的相对路径?

我想在我的系统上找到两个目录之间的相对路径。

例子:

如果我有pathA == <pathA>pathB == <pathA>/dir1/dir2,它们之间的相对路径将是dir1/dir2.

我怎么能在python中找到它?有我可以使用的工具吗?

如果pathB包含在pathA 中,我可以做得到pathB.replace(pathA, '')这个相对路径,但是如果pathB不包含在pathA 中怎么

python

7
推荐指数
1
解决办法
2670
查看次数

标签 统计

python ×4

path ×2

prefix ×2

pathlib ×1

string ×1