摆脱领先';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对象。