1.strip方法並不是去除對稱字符串的。
比如
a="123abcd321"
a.strip()方法的結果是abcd
有人可能就把strip方法理解成了“可以去除字符串兩端對稱字符”的一種方法。這么理解是錯誤的。
2.strip方法既可以去除字符串左側的字符也可以去除字符串右側的字符,也可以兩端同時去除。
a="123abcd"
a.strip(“123”)的結果是abcd
b="abcd123"
b.strip("123")的結果是abcd
strip方法的結果其實是先執行lstrip方法再執行rstrip方法,為了語義清楚,你如果要去除字符串右側的字符,最好用rstip,左側的就用lstrip
3.strip方法並不是匹配子串來刪除字符串的
如果是匹配子串的,那么就無法解釋下面的結果
a="123abcd"
a.strip("1234")的結果是abcd
4.strip方法真正的執行流程是這樣的:把strip中的參數拆分成一個個的字符,先執行lstrip方法,從字符串的左側找起,如果有字符是strip參數中的任意一個字符,那么就從字符串中刪除掉這個字符直到找到一個字符,這個字符不屬於strip參數中的任意一個字符。再執行strip方法,從字符串的右側找起,如果有字符是strip參數中的任意一個字符,那么就從字符串中刪除掉這個字符直到找到一個字符,這個字符不屬於strip參數中的任意一個字符。
b="ccfffoffc_ahfdof.cof"
b.strip(".cof")
這個例子,先執行lstrip的方法的結果是_ahfdof.cof
在_ahfdof.cof的基礎上執行rstrip方法
結果是_ahfd
最后在網上找到一個題目,對於理解strip方法很有用處
a="movies.csv"
a.strip(".csv")
的結果是什么?
預期的結果是movies
但實際上結果是movie
你能理解了嗎?
所以不要用strip方法來獲取文件名,有坑啊!