|
|
| 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) |