OSError:[Errno 22]参数Python文件处理无效

2024-10-06 12:50:27 发布

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

我目前正在进行计算机科学的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}$

提前感谢您的帮助!在


Tags: 文件test列表address错误记录seekpassword
1条回答
网友
1楼 · 发布于 2024-10-06 12:50:27

我倾向于相信贾森哈珀解决了这个问题。我使用自己的用户对象复制了您的代码,并注释掉了pickle.dump()行。我可以用相应的散列值打印两个用户而没有任何问题。然后,我取消了pickle.dump()的注释,并使用我自己的(小的)迭代值在File.seek()中使用;当我这样做时,一切都很好,python写入了该文件。我认为你计算的散列值太大,无法写入文件。不确定它是否是赋值的一部分,但是那些散列值不能作为文件偏移量使用。在

相关问题 更多 >