python3.x 如何從str中提取bytes?

例如 s = "b"xe4xb8xadxe6x96x87""

如何把 s 轉換為 b = b"xe4xb8xadxe6x96x87『


@依雲 提到的 eval 是不安全的,ast.literal_eval 是按 Python 語法來解析字面量的函數,這個場景可以使用這個方法來解決。

import ast
s = r"b"xe4xb8xadxe6x96x87""
print(ast.literal_eval(s)))

末尾吐槽:是轉義符,題目有誤。


eval. 或者自己寫解析器。


s = r"b"xe4xb8xadxe6x96x87""

bytes.fromhex("".join(s[2:-1].split("\x")[1:]))

應該有更高效的。


試試struct的pack和unpack


使用binaacii.hexlify()

binascii.unhexlify()

可能符合你的需求


都Python3了,str和bytes是可以互轉(編碼/解碼)的,類似Java。

string.encode()


推薦閱讀:

python安裝pandas包快要崩潰了?
Python pygame如何安裝?
python中 from . import ×××的那個點是表示當前包嗎?
python3.5可以安裝Twisted嗎?
windows系統下,首行# !/usr/bin/env python是不是沒有用?

TAG:Python | 字元編碼 |