python不能结构包结构错误:无法将参数转换为整数

2024-09-29 23:29:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个1444352kB的十六进制文件中读取。我获取128字节的数据,并尝试使用python打包它们结构包. 在

代码如下:

#!/usr/bin/env python
import os
import struct
import ctypes
import array
import binascii

import sys,getopt

filename = file_location
blocksize = 1444352

opts,args = getopt.getopt(sys.argv[1:],'f:b:')
for o,a in opts:
    if o == '-f':
    filename = a
if o == '-b':
    blocksize = a

offset = 0
with open(filename,"rb") as f:
block = f.read(blocksize)
str = ""
for ch in block:
    str += hex(ord(ch))+" "


sector = []
c = 0
for s in str.split(' ') :
    sector.append(s)
    c += 1
    if c == 128 :
        sector.append("")
        c = 0
        #print sector
        sector  = ', '.join(sector)
        #print sector
        print type(sector)
        sector = sector.split(',')
        secdata = []
        for items in sector[0:127] :
            secdata.append(items)
        secdata2 = ','.join(secdata)
        print secdata2
        print type(secdata2)
        struct.pack('B', secdata2)
        break

secdata,看起来是一个列表,我已经转换成字符串。但是当我试图打包128字节的数据时,总是会出现错误struct.error: cannot convert argument to integer。在


Tags: inimportforif字节filenamestructprint

热门问题