我目前正在进行计算机科学的A2学习,我在随机存取文件处理方面有困难。在
我正在尝试使用一个列表UsersArray
,它存储一些记录数据类型UsersArray = [lion,soso,Sxia]
,并在该列表中循环并将每个记录存储在文件TEST.DAT
中,偏移量如下Address = hash(UsersArray[i].Password)
。当我尝试执行File.seek(Address)
时,出现问题。它给了我一个错误,告诉我seek()
函数中的参数不正确,我不明白为什么会出现这种错误。在
import Users,pickle
File = open("TEST.DAT","rb+")
lion = Users.Users()
lion.Password = "ilovefood"
soso = Users.Users()
soso.Password = "cats123"
Sxia = Users.Users()
Sxia.Password = "luca<3"
UsersArray = [lion,soso,Sxia]
for i in range(3):
Address = hash(UsersArray[i].Password)
File.seek(Address)
pickle.dump(UsersArray[i],File)
File.close()
错误消息:
^{pr2}$提前感谢您的帮助!在
我倾向于相信贾森哈珀解决了这个问题。我使用自己的用户对象复制了您的代码,并注释掉了
pickle.dump()
行。我可以用相应的散列值打印两个用户而没有任何问题。然后,我取消了pickle.dump()
的注释,并使用我自己的(小的)迭代值在File.seek()
中使用;当我这样做时,一切都很好,python写入了该文件。我认为你计算的散列值太大,无法写入文件。不确定它是否是赋值的一部分,但是那些散列值不能作为文件偏移量使用。在相关问题 更多 >
编程相关推荐