【发布时间】:2017-01-05 16:45:55
【问题描述】:
我将创建一个 Python 脚本,将 Base64 字符串解码为字节数组(或十六进制值数组)。
我的项目的嵌入式方面是一个微控制器,它从原始字节开始创建一个 base64 字符串。该字符串包含一些不可打印的字符(为此我选择 base64 编码)。
在 PC 端,我需要解码 base64 字符串并恢复原始原始字节。
我的脚本使用 python 2.7 和 base64 库:
base64Packet = raw_input('Base64 stream:')
packet = base64.b64decode(base64Packet )
sys.stdout.write("Decoded packet: %s"%packet)
生成的字符串是一个包含一些不可打印字符的字符串。
有没有办法将 base64 字符串解码为字节(或十六进制)值?
提前致谢!
【问题讨论】:
-
你已经拥有那个字节串了。你期待什么输出,你看到了什么?也许您想在打印时使用
%r? -
@MartijnPieters:解码后我会有一个包含每个单字节的 python 列表。
-
你为什么需要它?你需要操纵字节吗?
str对象已经是一个序列,例如,您可以使用packet[index]寻址每个字节,或者使用for byte in packet:循环遍历字符串。 -
您可以仅使用
list(packet)创建列表,生成一个包含 1 个字符(字节)字符串的列表。或者您可能想改用bytearray对象,但不清楚您想对数据做什么。你还没有给我们你的用例。 -
那么你想要一个
bytearray()实例;只需使用bytearray(packet)。字节数组是 0-255 范围内的可变整数序列,每个字节一个整数。
标签: python string embedded base64 decode