摆脱领先';b';用python

摆脱领先';b';用python,python,byte,output,Python,Byte,Output,我试着剥掉一根绳子,就像 var/vob/bxxxxx/xxxxx/vob 我做这件事就像 'var/vob/bxxxxx/xxxxx/vob'.lstrip('/var/vob/') 我期待一个输出像 bxxxxx/xxxx/vob 但这只是给予 xxxx/xxxxxx/vob 是的,我知道,因为第一个字母是b,在python中,字符串的前缀b代表将其转换为字节,我也读过 但我想知道的是如何绕过这件事。。我想得到想要的输出 我很想说我尝试过的事情。。但是我找不到任何方法来尝试。。。有人

我试着剥掉一根绳子,就像

var/vob/bxxxxx/xxxxx/vob
我做这件事就像

'var/vob/bxxxxx/xxxxx/vob'.lstrip('/var/vob/')
我期待一个输出像

bxxxxx/xxxx/vob
但这只是给予

xxxx/xxxxxx/vob
是的,我知道,因为第一个字母是b,在python中,字符串的前缀b代表将其转换为字节,我也读过

但我想知道的是如何绕过这件事。。我想得到想要的输出

我很想说我尝试过的事情。。但是我找不到任何方法来尝试。。。有人能解释一下吗


谢谢:)

您误解了
lstrip
的功能。它删除作为参数字符串一部分的所有字符。秩序不重要。因为
b
在字符串中,所以它从结果的前面被删除。

怎么样

if s.startswith("var/vob/):
    s = s[8:]

是的,Mark是对的,
lstrip
从字符串中删除参数中包含的任何字符。

最好的方法是这样做

data, text = "/var/vob/bxxxxx/IT_test/vob", "/var/vob/"
if data.startswith(text): data = data[len(text):]
print data
输出

bxxxxxx/IT_test/vob

@PeterdGlopper,这个评论最好保留在原来的问题上。很公平-我认为这是通过建议一种替代方法来扩展您的答案(这解释了OP的尝试不起作用的原因),但没关系。感谢您的启发:)您的示例字符串甚至不以
lstrip
参数开头,因为它缺少前导的
/
。如果你想从一个字符串中切掉一个固定的前缀,我会测试
startswith(prefix)
,然后切片,类似于
test[len(prefix):]
。哦,作为对这一部分的回应:“在python中,字符串的前缀b代表将其转换为字节”-这指的是a)只有Python3.x和b)指的是在引号外使用
b
作为标记。在Python3中,这将是
字节
对象的文本:
b'foo'
,而这将是字符串对象的文本:
'bfoo'
。在Python2.x中,
u
标记的作用正好相反-
'foo'
是一个编码字符串,而
u'foo'
是一个Unicode对象。