我需要從網址剝去../something/
如何在Python中處理'../'?
例如: ../first/
from ../first/bit/of/the/url.html
其中first
可以是任何東西。
實現此目標的最佳方法是什麼?
謝謝:)
我需要從網址剝去../something/
如何在Python中處理'../'?
例如: ../first/
from ../first/bit/of/the/url.html
其中first
可以是任何東西。
實現此目標的最佳方法是什麼?
謝謝:)
您只需在官方路徑分隔符分割的路徑兩次(os.sep
,而不是 '/'),並採取最後一位:
>>> s = "../first/bit/of/the/path.html"
>>> s.split(os.sep, 2)[-1]
'bit/of/the/path.html'
這也是比完全分割路徑並將其串回到一起更有效。
請注意,如果路徑包含少於3個以上的路徑元素(例如,'file.html'產生'file.html'),則此代碼不會投訴。如果你想要的代碼引發異常如果路徑是預期的形狀無關,你可以要求它的第三個元素(這是不存在的過短路徑):
>>> s.split(os.sep, 2)[2]
這可以幫助檢測一些細微的錯誤。
刪除我的解決方案,你的顯然更好。 – 2010-11-13 14:39:37
EOL給了一個非常乾淨的方法,但是我忍不住給一個正則表達式替代吧:)
>>> import re
>>> m=re.search('^(\.{2}\/\w+/)(.*)$','../first/bit/of/the/path.html')
>>> m.group(1)
'../first/'
你是在談論一個路徑或URL? – 2010-11-13 14:08:38
你的意思是說''第一個''可以是你事先知道的其他東西,或者是你預先不知道的某個目錄名? – EOL 2010-11-13 14:24:46