Найти - Пользователи
Полная версия: вопрос про Pickle
Начало » Python для новичков » вопрос про Pickle
1 2 3
Slava_K
Допустим у меня есть запикленый файл.
Вот что я с ним делаю:
X = open('filename.dat', 'rb')
Y = cPickle.load(x)
Так вот вопрос - как посмотреть что записано в Y и как это сохранить в текстовый файл.

З.Ы. Извеняюсь за нубский вопрос
FishHook
Y.__dict__
type(Y)
dir(Y)
??????
Slava_K
FishHook
Y.__dict__
type(Y)
dir(Y)
??????
Можно чуть понятней? Что б для совсем нубов дошло)))
Ну спасибо в любом случае
Slava_K
FishHook
Y.__dict__
Выдаёт ошибку
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    Y.__dict__
AttributeError: 'tuple' object has no attribute '__dict__'

FishHook
type(Y)

Тип я и так знал.Мне это ничего не дало
<type 'tuple'>
FishHook
dir(Y)

А это что такое? Вот что выдало:
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

И ещё вопрос. При попытке влючить Pickle выдаёт ошибку, а с cPickle всё нормально
>>> import Pickle
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    import Pickle
ImportError: No module named Pickle
Slava_K
Вобщем из X.dat
Надо получить это -
80 02 4B 02 7D 71 01 86 2E

Поможете?
fata1ex
>>> import cPickle
>>> file = open('X.dat', 'rb')
>>> tup = cPickle.load(file)
>>> tup
(2, {})
FishHook
Slava_K
ип я и так знал.Мне это ничего не дало
Как не дало то?
Ты понял, что у тебя есть серилизованный кортеж.
По кортежу можно сделать цикл, или извлечь значение по индексу, или преобразовать в список, или применить один из

Slava_K
FishHook
dir(Y)

А это что такое? Вот что выдало:

['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'
этих методов.

А чего ты ожидал то?
Slava_K
FishHook
Ты понял, что у тебя есть серилизованный кортеж.
По кортежу можно сделать цикл, или извлечь значение по индексу, или преобразовать в список, или применить один из…
Вы слишком хорошего мнения о моих познаниях Python'a
Проблема в том, что из этого 9 байтового файла должны получится 9 двухбайтовых кодиков -
80 02 4B 02 7D 71 01 86 2E
а получается только это -
2, {}
fata1ex
>>> open('X.dat', 'r').read()
'\x80\x02K\x02}q\x01\x86.'
Slava_K
fata1ex
>>> open('X.dat', 'r').read()
'\x80\x02K\x02}q\x01\x86.'
Это тоже не совсем то, хотя уже ближе
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB