我是新的python編程,試圖剝離包含正斜槓字符的字符串,我期望輸出爲'/堆棧',但給出如下結果。你能幫我實現預期產量嗎?還有其他簡單的方法可以實現嗎?如何去掉包含正斜槓的字符串?
>>> name='/stack/overflow'
>>> sub ='/overflow'
>>> name.strip(sub)
'stack'
在此先感謝 HEMA
我是新的python編程,試圖剝離包含正斜槓字符的字符串,我期望輸出爲'/堆棧',但給出如下結果。你能幫我實現預期產量嗎?還有其他簡單的方法可以實現嗎?如何去掉包含正斜槓的字符串?
>>> name='/stack/overflow'
>>> sub ='/overflow'
>>> name.strip(sub)
'stack'
在此先感謝 HEMA
的.strip
方法不會做你認爲它的作用:
Docstring:
S.strip([chars]) -> string or unicode
Return a copy of the string S with leading and trailing
whitespace removed.
If chars is given and not None, remove characters in chars instead.
If chars is unicode, S will be converted to unicode before stripping
所以,你在做什麼時說:「除去/ O, v,e,r,f,l,o和w從該字符串的開頭或結尾開始。「
相反,嘗試對/
分裂,採取所有,但最後一個元素,並重新加入:
In [12]: '/'.join("/stack/overflow".split('/')[:-1])
Out[12]: '/stack'
如果你真的只是想刪除子「/溢出」,你可以這樣做:
In [15]: "/stack/overflow".replace('/overflow', '')
Out[15]: '/stack'
首先,你需要檢查你所使用的OS
,
如果它的Linux/Unix的
正常的文件路徑是通過/
,所以你可以簡單地使用表示,
>>>name = '/stack/overflow'
>>>name.split(os.sep) # Here os.sep is nothing but "/"
['', 'stack', 'overflow']
,如果它的Windows,
只使用
>>> name.split("/")
['', 'stack', 'overflow']
如果他真的想一切 - 除了最後一個,我可以使用'os.path.split'代替。 – DSM
@DSM假設他或她實際上要求的是操作系統目錄路徑,而不是,例如HTTP路徑或僅由正斜槓分隔的字符串。另外,在Windows上會失敗:「os.path模塊始終是適用於Python運行的操作系統的路徑模塊,因此可用於本地路徑。」 :) –
@Christian很好的解釋謝謝:) – user1559873