没有账号?3秒注册
醉晚亭
首页
招聘区
醉晚亭
心情阁
二手屋
提问题
精华热门
搜索查找
本讨论区 上一篇 下一篇 发表帖子 打印本页 
python3写二进制文件的相关问题
发信人: 我欲乘风  版面: 提问题  浏览: 507  回复: 4
1 楼  我欲乘风   发表于: 2015/12/27 10:31:32    编辑   

变量如下:
elen = 10
rev0 =0
rev1 =0
rev2 =0
pre = b"ABCDE"
Num = 2
Sec = 100
idx = 0
temp = 59328
这些都没问题,关键是下个操作:
for i in range(100):
code =struct.pack("BBBB5s10siiiii",elen,rev0,rev1,rev2,pre,i,Num,Sec,idx,temp)
主要是这里的变量i,它应该是整形的吧,我现在想把它变成占10个字节空间的十六进制。如“ABCD”可以用10s格式符,但是这里的i格式符怎么写呢?我这里的10s当然不行。
这段代码主要是生成一个特定格式的bin文件。各位有好的例程也可以给我看看>~<
本人初学python,虚心求教.



2 楼  小a草   发表于: 2015/12/27 15:34:55    编辑   

先把i转成hex不行吗



3 楼  赵紫萱04   发表于: 2015/12/27 15:21:51    编辑   

python不会这么不灵活吧,我觉得



4 楼  wskhong   发表于: 2015/12/27 17:36:30    编辑   





5 楼  紫月枫霜   发表于: 2015/12/27 20:24:58    编辑   

def padded_hex(i, l):
given_int = i
given_len = l

hex_result = hex(given_int)[2:] # remove '0x' from beginning of str
num_hex_chars = len(hex_result)
extra_zeros = '0' * (given_len - num_hex_chars) # may not get used..

return ('0x' + hex_result if num_hex_chars == given_len else
'?' * given_len if num_hex_chars > given_len else
'0x' + extra_zeros + hex_result if num_hex_chars < given_len else
None)


☺ 表情

醉晚亭 © 2026 新版论坛 帮助文档 举报投诉 联系我们