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方法来获取文件名,有坑啊!