如何将二进制值附加到数组中?

发布于 2025-01-10 20:12:48 字数 1335 浏览 0 评论 0原文

我从源中提取随机二进制文件,并尝试将每个二进制字节附加到数组中。但是,Python 仅将每个字符附加到数组中,而不是每个二进制字节。我尝试在这里和谷歌搜索,似乎没有我可以遵循的先前示例。不知有人知道吗?

我有这个 16 个二进制字节的列表 random_byte_request

10001100 11001010 11111101 11010100 01101010 01011001 00010000 10111110 01111000 11111010 00100101 01110001 11001001 10001100 10001000 01001011

我创建一个空数组:

random_byte_array = []

然后将每个元素附加到空数组中:

for bits in range(len(random_16_bytes)):
    random_byte_array.append(random_16_bytes[bits])
print(random_byte_array)

但是结果并不像我想要的那样:

['1', '0', '0', '0', '1', '1', '0', '0', ' ', '1', '1', '0', '0', '1', '0', '1', '0', ' ', '1', '1', '1', '1', '1', '1', '0', '1', ' ', '1', '1', '0', '1', '0', '1', '0', '0', ' ', '0', '1', '1', '0', '1', '0', '1', '0', ' ', '0', '1', '0', '1', '1', '0', '0', '1', ' ', '0', '0', '0', '1', '0', '0', '0', '0', ' ', '1', '0', '1', '1', '1', '1', '1', '0', ' ', '0', '1', '1', '1', '1', '0', '0', '0', ' ', '1', '1', '1', '1', '1', '0', '1', '0', ' ', '0', '0', '1', '0', '0', '1', '0', '1', ' ', '0', '1', '1', '1', '0', '0', '0', '1', ' ', '1', '1', '0', '0', '1', '0', '0', '1', ' ', '1', '0', '0', '0', '1', '1', '0', '0', ' ', '1', '0', '0', '0', '1', '0', '0', '0', ' ', '0', '1', '0', '0', '1', '0', '1', '1', ' ']

I pull random binary from a source and I am trying to append each binary bytes into an array. However, Python only append each character into the array and not each binary bytes. I tried to search in here and Google and it seems there is no prior example that I could follow. I wonder if anybody know?

I have this list of 16 binary bytes
random_byte_request:

10001100 11001010 11111101 11010100 01101010 01011001 00010000 10111110 01111000 11111010 00100101 01110001 11001001 10001100 10001000 01001011

I create an empty array:

random_byte_array = []

Then I appended each element into the empty array:

for bits in range(len(random_16_bytes)):
    random_byte_array.append(random_16_bytes[bits])
print(random_byte_array)

However the result is not as I wanted:

['1', '0', '0', '0', '1', '1', '0', '0', ' ', '1', '1', '0', '0', '1', '0', '1', '0', ' ', '1', '1', '1', '1', '1', '1', '0', '1', ' ', '1', '1', '0', '1', '0', '1', '0', '0', ' ', '0', '1', '1', '0', '1', '0', '1', '0', ' ', '0', '1', '0', '1', '1', '0', '0', '1', ' ', '0', '0', '0', '1', '0', '0', '0', '0', ' ', '1', '0', '1', '1', '1', '1', '1', '0', ' ', '0', '1', '1', '1', '1', '0', '0', '0', ' ', '1', '1', '1', '1', '1', '0', '1', '0', ' ', '0', '0', '1', '0', '0', '1', '0', '1', ' ', '0', '1', '1', '1', '0', '0', '0', '1', ' ', '1', '1', '0', '0', '1', '0', '0', '1', ' ', '1', '0', '0', '0', '1', '1', '0', '0', ' ', '1', '0', '0', '0', '1', '0', '0', '0', ' ', '0', '1', '0', '0', '1', '0', '1', '1', ' ']

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

森末i 2025-01-17 20:12:48

如果没有更好地查看您的代码以及数据的生成方式,我相信您真正想要的选项是扩展,

random_byte_array = [] 
random_byte_array.extend(['10001100'])

这需要以满足您的特定需求的方式进行更改,但这会创建一个空白数组并允许您将整个二进制文件添加到数组的末尾。如果您提供有关代码的更多详细信息,那么我们可能会更接近您正在寻找的内容。

Without having a better look at your code and how your data is being generated I believe the option you really want is extend

random_byte_array = [] 
random_byte_array.extend(['10001100'])

This would need to be altered in a way that meets your specific needs, but this would create a blank array and allows you to add an entire binary to the end of the array. If you provide a little more detail on your code then we could probably get a little closer to what you are looking for.

白云悠悠 2025-01-17 20:12:48

您可以使用 str(random_byte_request) 将字节转换为字符串。这将在开头添加 b' 并在末尾添加 '。因此使用 [2:-1] 剥离它。使用 .split(' ') 用空格分割字符串。如果您希望列表中包含字符串,则可以保留 x,否则如果您也希望列表中包含字节,请使用 x.encode('utf8') 对字符串进行编码

random_byte_request = b'10001100 11001010 11111101 11010100 01101010 01011001 00010000 10111110 01111000 11111010 00100101 01110001 11001001 10001100 10001000 01001011'
random_byte_array = [x.encode('utf8') for x in str(random_byte_request)[2:-1].split(' ')]
print(random_byte_array)

You can convert the bytes to string using str(random_byte_request). This will add b' at the start and ' at the end. So stripping that using [2:-1]. Split the string with space using .split(' '). If you want string in the list you can just keep x else if you want bytes in the list as well, encode the string using x.encode('utf8')

random_byte_request = b'10001100 11001010 11111101 11010100 01101010 01011001 00010000 10111110 01111000 11111010 00100101 01110001 11001001 10001100 10001000 01001011'
random_byte_array = [x.encode('utf8') for x in str(random_byte_request)[2:-1].split(' ')]
print(random_byte_array)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文