В настоящее время я прохожу курсы А2 по информатике и испытываю трудности с обработкой файлов с произвольным доступом.
Я пытаюсь получить список 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()
Сообщение об ошибке:
Traceback (most recent call last):
File "C:\Users\Vaio\Desktop\PythonA2\File Processing\RandomAccessWrite.py", line 17, in <module>
File.seek(Address)
OSError: [Errno 22] Invalid argument
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u "C:\Users\Vaio\Desktop\PythonA2\File Processing\RandomAccessWrite.py"]
[dir: C:\Users\Vaio\Desktop\PythonA2\File Processing]
[path: C:\MinGW\bin;C:\Users\Vaio\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\Vaio\AppData\Local\Programs\Python\Python36-32\]
Заранее спасибо за помощь!