我的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中实现它?
提前致谢!
答案 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.path
或urlparse
。
答案 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 /”用作参数时应该是什么结果:应该是“/”还是“”?我在上面的代码中假设了第二个。