Форум сайта python.su
Подскажите, как можно расконсервировать (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()
Офлайн
может потому что файл открывается на дозапись?
“Обратите внимание, что режим записи в файл должен обязательно быть wb, то есть перезапись файла в бинарном режиме. Для чтения режим должен быть rb:”
Офлайн
marvellik
Мне нужна как раз дозапись, чтобы старые данные сохранялись.
Офлайн
Для таких задач больше подходит модуль shelve…
Офлайн
FranekВсе правильно. Положили tuple, получили tuple. С какой стати питон должен list выдумать? Если данных много это может быть и list и tuple и set и array ну и так далее В вашем случае это может быть и key,value пара для словаря. Не будет питон за вас решать как данные организовать.
А чтение происходит только первого кортежа.
Отредактировано doza_and (Июль 21, 2016 09:15:26)
Офлайн