python 读写二进制文件实例_python-将二进制文件读取到结构列表,但Deepc...

我正在将二进制文件读入类实例列表.我有一个循环,可将文件中的数据读取到实例中.实例填充完毕后,我将实例附加到列表中并再次开始阅读.

除实例的元素之一是Rect(即矩形)(一种用户定义的类型)外,此方法均能正常工作.即使使用Deepcopy,属性也会被覆盖.

有一些变通办法,例如不让Rect是用户定义的类型.但是,我看到这种情况会遇到很多,并希望有一个简单的解决方案可以让我在循环中读取嵌套类型.

这是一些代码:

class Rect:

def __init__(self):

self.L = 0

class groundtruthfile:

def __init__(self):

self.rect = Rect

self.ht = int

self.wt = int

self.text = ''

...

data = []

g = groundtruthfile()

f = open("datafile.dtf", "rb")

length = unpack('i', f.read(4))

for i in range(1,length[0]+1): #length is a tuple

g.rect.L = unpack('i',f.read(4))[0]

...

data.append(copy.deepcopy(g))

除了所有data(i).rect.L是最后读取的数据的值之外,此结果正是我想要的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值