将python中的字符串减少到特定点

时间:2010-01-27 08:24:14

标签: python string path

我的python应用程序中的字符串看起来像这样:

test1/test2/foo/

每当我得到这样一个字符串时,我想减少它,从尾部开始减少直到达到第一个“/”。

test1/test2/

更多例子:

foo/foo/foo/foo/foo/  => foo/foo/foo/foo/
test/test/            => test/
how/to/implement/this => how/to/implement/

我如何在python中实现它?

提前致谢!

7 个答案:

答案 0 :(得分:6)

听起来os.path.dirname功能可能就是您正在寻找的功能。您可能需要多次调用它:

>>> import os.path
>>> os.path.dirname("test1/test2/")
'test1/test2'
>>> os.path.dirname("test1/test2")
'test1'

答案 1 :(得分:5)

带有maxsplit参数的

str.rsplit()。或者如果这是一条路径,请查看os.pathurlparse

答案 2 :(得分:5)

 newString = oldString[:oldString[:-1].rfind('/')]
 # strip out trailing slash    ----^       ^---- find last remaining slash

答案 3 :(得分:1)

>>> import os
>>> path="how/to/implement/this"
>>> os.path.split(path)
('how/to/implement', 'this')
>>> os.path.split(path)[0]
'how/to/implement'

答案 4 :(得分:0)

>>> os.path.split('how/to/implement/this'.rstrip('/'))
('how/to/implement', 'this')
>>> os.path.split('how/to/implement/this/'.rstrip('/'))
('how/to/implement', 'this')

答案 5 :(得分:0)

'/'.join(s.split('/')[:-1]+[''])

答案 6 :(得分:0)

如果你的意思是路径分隔符中的“/”,你想要的功能是:

os.path.dirname(your_argument)

如果没有,那么你想:

def your_function(your_argument):
    result= your_argument.rstrip("/").rpartition("/")[0]
    if result:
        return result + "/"
    return result

请指定当“test /”用作参数时应该是什么结果:应该是“/”还是“”?我在上面的代码中假设了第二个。