Модуль pickle на Python

С помощью модуля pickle можно преобразовать объект в набор байтов, а потом обратно — из байтов в исходный объект.

import pickle
 
f = open("text.txt","w");
a = [1,2]
pickle.dump(a,f)
f.close()
 
f = open("text.txt","r");
a = pickle.load(f)
print(a)
f.close()

Содержимое файла выглядит странно:

(lp0
I1
aI2
a.

В третьей версии Python файл надо открывать в режимах ‘rb', ‘wb' или ‘ab'.

>>> f = open("text7.txt", 'wb')
>>> pickle.dump(c,f)
>>> f = open("text7.txt", 'ab')
>>> pickle.dump(b,f)
>>> f = open("text7.txt")
>>> f.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.2/codecs.py", line 300, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec cant decode byte 0x80 in position 0: invalid start byte
>>> pickle.load(f)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' does not support the buffer interface
>>> f = open("text7.txt", 'rb')
>>> pickle.load(f)
'hello'
>>> pickle.load(f)
{1: 'a', 'c': {10: 100, 20: 200}, 'b': 34.5}
>>> pickle.load(f)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
EOFError

  Методы получения следующего символа в строке Python: руководство и примеры
Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Python для начинающих
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x