2013-10-24 44 views
4

我是新的python編程,試圖剝離包含正斜槓字符的字符串,我期望輸出爲'/堆棧',但給出如下結果。你能幫我實現預期產量嗎?還有其他簡單的方法可以實現嗎?如何去掉包含正斜槓的字符串?

>>> name='/stack/overflow' 
>>> sub ='/overflow' 
>>> name.strip(sub) 
'stack' 

在此先感謝 HEMA

回答

6

.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' 
+0

如果他真的想一切 - 除了最後一個,我可以使用'os.path.split'代替。 – DSM

+1

@DSM假設他或她實際上要求的是操作系統目錄路徑,而不是,例如HTTP路徑或僅由正斜槓分隔的字符串。另外,在Windows上會失敗:「os.path模塊始終是適用於Python運行的操作系統的路徑模塊,因此可用於本地路徑。」 :) –

+0

@Christian很好的解釋謝謝:) – user1559873

0

首先,你需要檢查你所使用的OS

如果它的Linux/Unix的

正常的文件路徑是通過/

,所以你可以簡單地使用表示,

>>>name = '/stack/overflow' 

>>>name.split(os.sep) # Here os.sep is nothing but "/" 

['', 'stack', 'overflow'] 

,如果它的Windows,

只使用

>>> name.split("/") 
['', 'stack', 'overflow'] 
相關問題