2012-07-29 68 views
2

任何人都可以向我解釋以下行爲嗎?這沒有任何意義。Python奇怪的字符串處理問題帶

我有一個字符串:

In [170]: t = "c:\\website\\site-env\\scripts" 

我嘗試剝離:從前面的 「C \網站」,並且它不工作:

In [171]: t.strip("c:\\website") 
Out[171]: '-env\\scrip' 

我備份一點點看看它破壞的地方:

In [172]: t.strip("c:\\websi") 
Out[172]: 'te\\site-env\\script' 

由於某些原因,它發生在「t」之後!

In [173]: t.strip("c:\\websit") 
Out[173]: '-env\\scrip' 

任何想法?我很難過。

+1

您是否確實......閱讀文檔?你可以在Python shell中做一個'help(「」。strip)''。 – 2012-07-29 23:28:38

回答

10

strip使用字符,而不是字符串。例如,"abcdefg".strip("facedb")將導致"g"。改爲使用切片:

t[len(r'c:\website'):] if t.startswith(r'c:\website') else t 
+0

Doh!應該更仔細地閱讀文檔。謝謝。 – blindsnowmobile 2012-07-29 23:29:30

+2

t = t.replace(r'c:\ website','',1)is imho simpler – 2012-07-29 23:33:09

+0

@RobCowie:它將它替換成字符串中的任何位置,儘管... – Ryan 2012-07-29 23:35:27