首页 > 代码库 > Python误区之strip,lstrip,rstrip
Python误区之strip,lstrip,rstrip
最近在处理数据的时候,想把一个字符串开头的“)”符号去掉,所以使用targetStr.lstrip(")"),发现在
将处理完的数据插入到数据库时会出现编码报错,于是在网上搜到了这个帖子。出现上述编码错误问题的原因
是我对lstrip函数的理解错误,权威的解释如下:
str.lstrip([chars])
Return a copy of the string with leading characters removed. The chars argument is a string
specifying the set of characters to be removed. If omitted or None, the chars argument
defaults to removing whitespace. The chars argument is not a prefix; rather, all combinations
of its values are stripped:
>>> ‘ spacious ‘.lstrip()‘spacious ‘>>> ‘www.example.com‘.lstrip(‘cmowz.‘)‘example.com‘
strip, lstrip, rstrip的情况都一样,最重要的是要注意:
参数chars是一个集合,而不是prefix(chars集合中字符的所有组合都会被删除)
所以分析我出错的情况:
>>> a = ")">>> b = "(">>> a‘\xef\xbc\x89‘>>> b‘\xef\xbc\x88‘>>> len(a)3>>> a.lstrip(b)‘\x89‘>>> b.lstrip(a)‘\x88‘>>> targetStr = ")求教python高手:(一)">>> print targetStr.lstrip(a)求教python高手:(一)>>> print targetStr.lstrip(b)?求教python高手:(一)>>> targetStr = "(1)求教python高手:(一)">>> print targetStr.lstrip(a)?1)求教python高手:(一)>>> print targetStr.lstrip(b)1)求教python高手:(一)
所以我采用的解决方法如下,
方法1:
>>> targetStr = ")求教python高手:(一)">>> targetStr = targetStr[3:] if targetStr.find(")") == 0 else targetStr>>> print targetStr求教python高手:(一)>>> targetStr = "(1)求教python高手:(一)">>> targetStr = targetStr[3:] if targetStr.find(")") == 0 else targetStr>>> print targetStr(1)求教python高手:(一)
方法2:
>>> len(u")")1>>> targetStr = u")求教python高手:(一)">>> print targetStr)求教python高手:(一)>>> targetStru‘\uff09\u6c42\u6559python\u9ad8\u624b\uff1a\uff08\u4e00\uff09‘>>> targetStr = targetStr.lstrip(u")")>>> targetStru‘\u6c42\u6559python\u9ad8\u624b\uff1a\uff08\u4e00\uff09‘>>> print targetStr求教python高手:(一)>>> targetStr = u"(1)求教python高手:(一)">>> print targetStr(1)求教python高手:(一)>>> targetStru‘\uff081\uff09\u6c42\u6559python\u9ad8\u624b\uff1a\uff08\u4e00\uff09‘>>> targetStr = targetStr.lstrip(u")")>>> targetStru‘\uff081\uff09\u6c42\u6559python\u9ad8\u624b\uff1a\uff08\u4e00\uff09‘>>> print targetStr(1)求教python高手:(一)
如果各位有更好的方法,一定要告诉我 : )
此外,从这个帖子我还学习到了另外一点:
>>> c = int("\t22\n")>>> c22
References:
求教python高手:一个简单的问题,lstrip函数切割错误
Python误区之strip,lstrip,rstrip
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。