如何用Python将整数的8位二进制从右侧拆分到Excel多行?
解决方案
看起来你已经把整数转8位二进制的部分处理得很完美了,现在只需要调整Excel的写入逻辑,就能实现把每个二进制字符串的每一位从右侧(最低位)拆分到单独行的需求。这里给你两种可行的修改方案:
方案一:使用reversed()反转二进制字符串
这个方法代码更简洁,利用reversed()直接遍历原二进制字符串的逆序(也就是从右侧开始的每一位):
row = 3 for x in MyList: mybinary = bin(x)[2:].zfill(8) # 遍历反转后的二进制字符串,从右侧第一位开始取每一位 for bit in reversed(mybinary): ws.write(row, 2, bit) row += 1
方案二:通过索引直接定位右侧位
如果你更喜欢直观地控制遍历顺序,可以通过索引从最后一位(索引7)往前遍历到第一位(索引0):
row = 3 for x in MyList: mybinary = bin(x)[2:].zfill(8) # 从索引7到0循环,逐个取出右侧的每一位 for i in range(7, -1, -1): ws.write(row, 2, mybinary[i]) row += 1
逻辑说明
- 两种方案的核心都是逐个取出原8位二进制字符串的右侧位,每个整数对应写入8行数据,写完一个整数后
row自动递增8位,不会和下一个整数的内容重叠。 - 比如整数
10转成8位二进制是00001010,处理后会依次写入0、1、0、1、0、0、0、0,完全符合你“从右侧开始拆分到8行”的要求。
内容的提问来源于stack exchange,提问作者JohnDoe
相关产品推荐
相关产品推荐

