如何在python中处理'../'?

sig*_*nce 0 python string url path

我需要../something/从网址中删除

例如.剥离../first/../first/bit/of/the/url.html哪里first可以是任何东西.

实现这一目标的最佳方法是什么?

谢谢 :)

Eri*_*got 5

您可以简单地在官方路径分隔符(而不是'/')中将路径拆分两次os.sep并取最后一位:

>>> s = "../first/bit/of/the/path.html"
>>> s.split(os.sep, 2)[-1]
'bit/of/the/path.html'
Run Code Online (Sandbox Code Playgroud)

这比完全分割路径并将其重新串联在一起更有效.

请注意,当路径包含少于3个路径元素时,此代码不会抱怨(例如,'file.html'产生'file.html').如果您希望代码在路径不是预期形式时引发异常,您可以只询问其第三个元素(对于太短的路径不存在):

>>> s.split(os.sep, 2)[2]
Run Code Online (Sandbox Code Playgroud)

这有助于检测一些微妙的错误.