2016-08-04 76 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 
相關問題