为什么str.lstrip会截断字母e表示以e开头而不是其他字母?

时间:2014-12-17 13:58:09

标签: python string strip

奇怪的是,当我尝试使用xlrd模数从Python中取出excel文件中的内容时,我遇到了这个问题。

示例如下:

Python 2.7.6 (default, Mar 22 2014, 22:59:38) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a="text:u'ethos'"
>>> a
"text:u'ethos'"
>>> a.lstrip("text:u'").rstrip("'")
'hos'
>>> b="text:u'weekend'"
>>> b
"text:u'weekend'"
>>> b.lstrip("text:u'").rstrip("'")
'weekend'

从xlrd读出的单元格在文字中:u''格式我只需要得到这个词。

尽管我最终使用table.cell_value()方法来解决它。但我想知道为什么?

那么为什么周末'工作得很好,但是像“#ethnce'是错的?

1 个答案:

答案 0 :(得分:2)

您应该仔细查看lstrip函数https://docs.python.org/2/library/stdtypes.html#str.lstrip

  

返回删除了前导字符的字符串副本。 chars参数是一个字符串,指定要删除的字符集。如果省略或None,则chars参数默认为删除空格。 chars参数不是前缀;相反,它的所有值组合都被剥离了:

它最终会剥离字符t,e,x,:和u,直到它达到不同的字符。对于“text:u'ethos'”,每个直到'h'的字符都在该列表中,因此它将删除它们。使用“text:w'weekend'”,由于'w'不在该列表中,因此停止在那里剥离字符。