如何将字节连接在一起
How to concatenate bytes together
这是代码片段:-
join_values = []
new_byteArray = [128, 0, 0, 0, 86, 70, 124, -96]
for values in byteArray:
values = long(values)
store_values = struct.pack('!q', values)
join_values.append(store_values)
print join_values
这会产生正确的结果:-
['\x00\x00\x00\x00\x00\x00\x00\x80',
'\x00\x00\x00\x00\x00\x00\x00\x00',
'\x00\x00\x00\x00\x00\x00\x00\x00',
'\x00\x00\x00\x00\x00\x00\x00\x00',
'\x00\x00\x00\x00\x00\x00\x00V',
'\x00\x00\x00\x00\x00\x00\x00F',
'\x00\x00\x00\x00\x00\x00\x00|',
'\xff\xff\xff\xff\xff\xff\xff\xa0']
这个结果是正确的,但我没有任何方法可以做一个组合包或做一些事情,以便将 8 个字节中的最后一个字节连接在一起,以便我可以获得如下输出:-
\x80\x00\x00x00VF|\xa0
好吧,您可以使用 s[-1]
.
从字符串 s
中获取最后一个字节
python2.7 有一个名为 list comprehension 的功能,可用于对列表的每个元素执行转换。
最后,join
将字符串组合在一起。
将它们放在一起看起来像
my_transformed_list = [s[-1] for s in join_values]
concatenated = ''.join(my_transformed_list)
解决这个问题的另一种方法是使用函数式编程。对列表的每个元素执行转换的行为称为 map
:
my_transformed_list2 = map(lambda s: s[-1], j)
concatenated2 = ''.join(my_transformed_list2)
这是代码片段:-
join_values = []
new_byteArray = [128, 0, 0, 0, 86, 70, 124, -96]
for values in byteArray:
values = long(values)
store_values = struct.pack('!q', values)
join_values.append(store_values)
print join_values
这会产生正确的结果:-
['\x00\x00\x00\x00\x00\x00\x00\x80',
'\x00\x00\x00\x00\x00\x00\x00\x00',
'\x00\x00\x00\x00\x00\x00\x00\x00',
'\x00\x00\x00\x00\x00\x00\x00\x00',
'\x00\x00\x00\x00\x00\x00\x00V',
'\x00\x00\x00\x00\x00\x00\x00F',
'\x00\x00\x00\x00\x00\x00\x00|',
'\xff\xff\xff\xff\xff\xff\xff\xa0']
这个结果是正确的,但我没有任何方法可以做一个组合包或做一些事情,以便将 8 个字节中的最后一个字节连接在一起,以便我可以获得如下输出:-
\x80\x00\x00x00VF|\xa0
好吧,您可以使用 s[-1]
.
s
中获取最后一个字节
python2.7 有一个名为 list comprehension 的功能,可用于对列表的每个元素执行转换。
最后,join
将字符串组合在一起。
将它们放在一起看起来像
my_transformed_list = [s[-1] for s in join_values]
concatenated = ''.join(my_transformed_list)
解决这个问题的另一种方法是使用函数式编程。对列表的每个元素执行转换的行为称为 map
:
my_transformed_list2 = map(lambda s: s[-1], j)
concatenated2 = ''.join(my_transformed_list2)