Уведомления

Группа в Telegram: @pythonsu

#1 Июль 20, 2016 21:21:42

Franek
От: Беларусь
Зарегистрирован: 2016-05-09
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

Как расконсервировать всё содержимое файла?

Подскажите, как можно расконсервировать (unpickling) всё содержимое файла .dat ?
В моём коде при каждом запуске программы в файл дописываются данные, как и надо. А чтение происходит только первого кортежа.

 name = input("Ваше имя:  ")
score = 4
import pickle
a = (name, score)
file = open("list.dat", "ab")
pickle.dump(a, file)
file.close()
file = open("list.dat", "rb")
spisok = pickle.load(file)
print(spisok)
file.close()

Офлайн

#2 Июль 20, 2016 22:50:23

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Как расконсервировать всё содержимое файла?

может потому что файл открывается на дозапись?
“Обратите внимание, что режим записи в файл должен обязательно быть wb, то есть перезапись файла в бинарном режиме. Для чтения режим должен быть rb:”

Офлайн

#3 Июль 21, 2016 08:16:05

Franek
От: Беларусь
Зарегистрирован: 2016-05-09
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

Как расконсервировать всё содержимое файла?

marvellik
Мне нужна как раз дозапись, чтобы старые данные сохранялись.

Офлайн

#4 Июль 21, 2016 08:55:58

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Как расконсервировать всё содержимое файла?

Для таких задач больше подходит модуль shelve…

Офлайн

#5 Июль 21, 2016 09:12:13

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как расконсервировать всё содержимое файла?

Franek
А чтение происходит только первого кортежа.
Все правильно. Положили tuple, получили tuple. С какой стати питон должен list выдумать? Если данных много это может быть и list и tuple и set и array ну и так далее В вашем случае это может быть и key,value пара для словаря. Не будет питон за вас решать как данные организовать.
Вы и не просите прочитать много кусков вам их и не выдают.



Отредактировано doza_and (Июль 21, 2016 09:15:26)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version