如何检查特定字符串是否在变量字节变量
问题描述:
我有一个变量,在字节表中的套接字接收到,我需要检查是否包含特定的字符串。如何检查特定字符串是否在变量字节变量
例如:
>>> a="foo\r\nbar"
>>> print(str(a.find("\r\n")))
3
这工作得很好,但如果第一个变量是a
作为铸造字节将不再工作。
>>> a=b"foo\r\nbar"
>>> print(str(a.find("\r\n")))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
如果我再次将变量a
作为字符串投射,它也不起作用。
>>> print(str(str(a).find("\r\n")))
-1
如何在字节变量中检查\r\n
?
答
>>> a = b"foo\r\nbar"
>>> print(a.find(b"\r\n"))
3
也可以作为TheGirrafish说
字符串解码
答
你必须decode你的字节对象转换成字符串,因为它不会工作。
试试下面的代码:
>>> a=b"foo\r\nbar"
>>> print(a.decode("utf-8").find("\r\n"))
3
你varibale a
编码这就是为什么它不能以Unicode字符串像"\r\n"
进行比较。
答
搜索一个字节串太(如错误提示!):
>>> a=b"foo\r\nbar"
>>> print(str(a.find(b"\r\n")))
3