2016-08-04 71 views
0

我有一个变量,在字节表中的套接字接收到,我需要检查是否包含特定的字符串。如何检查特定字符串是否在变量字节变量

例如:

>>> 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

回答

1
>>> a = b"foo\r\nbar" 
>>> print(a.find(b"\r\n")) 
3 

也可以作为TheGirrafish说

字符串解码
1

你必须decode你的字节对象转换成字符串,因为它不会工作。
试试下面的代码:

>>> a=b"foo\r\nbar" 
>>> print(a.decode("utf-8").find("\r\n")) 
3 

你varibale a编码这就是为什么它不能以Unicode字符串像"\r\n"进行比较。

1

搜索一个字节串太(如错误提示!):

>>> a=b"foo\r\nbar" 
>>> print(str(a.find(b"\r\n"))) 
3 
相关问题