Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 4, 2012 10:02:29

Slava_K
От: Минск
Зарегистрирован: 2012-06-04
Сообщения: 24
Репутация: +  0  -
Профиль  

вопрос про Pickle

Допустим у меня есть запикленый файл.
Вот что я с ним делаю:

X = open('filename.dat', 'rb')
Y = cPickle.load(x)
Так вот вопрос - как посмотреть что записано в Y и как это сохранить в текстовый файл.

З.Ы. Извеняюсь за нубский вопрос

Офлайн

#2 Июнь 4, 2012 12:00:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

вопрос про Pickle

Y.__dict__
type(Y)
dir(Y)
??????



Офлайн

#3 Июнь 4, 2012 12:17:28

Slava_K
От: Минск
Зарегистрирован: 2012-06-04
Сообщения: 24
Репутация: +  0  -
Профиль  

вопрос про Pickle

FishHook
Y.__dict__
type(Y)
dir(Y)
??????
Можно чуть понятней? Что б для совсем нубов дошло)))
Ну спасибо в любом случае

Отредактировано Slava_K (Июнь 4, 2012 12:21:21)

Офлайн

#4 Июнь 4, 2012 12:30:08

Slava_K
От: Минск
Зарегистрирован: 2012-06-04
Сообщения: 24
Репутация: +  0  -
Профиль  

вопрос про Pickle

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 (Июнь 4, 2012 12:31:40)

Офлайн

#5 Июнь 4, 2012 12:41:04

Slava_K
От: Минск
Зарегистрирован: 2012-06-04
Сообщения: 24
Репутация: +  0  -
Профиль  

вопрос про Pickle

Вобщем из X.dat
Надо получить это -

80 02 4B 02 7D 71 01 86 2E

Поможете?

Отредактировано Slava_K (Июнь 4, 2012 12:42:31)

Прикреплённый файлы:
attachment X.dat (9 байт)

Офлайн

#6 Июнь 4, 2012 14:11:41

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

вопрос про Pickle

>>> import cPickle
>>> file = open('X.dat', 'rb')
>>> tup = cPickle.load(file)
>>> tup
(2, {})



Офлайн

#7 Июнь 4, 2012 15:42:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

вопрос про Pickle

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'
этих методов.

А чего ты ожидал то?



Офлайн

#8 Июнь 4, 2012 17:22:28

Slava_K
От: Минск
Зарегистрирован: 2012-06-04
Сообщения: 24
Репутация: +  0  -
Профиль  

вопрос про Pickle

FishHook
Ты понял, что у тебя есть серилизованный кортеж.
По кортежу можно сделать цикл, или извлечь значение по индексу, или преобразовать в список, или применить один из…
Вы слишком хорошего мнения о моих познаниях Python'a
Проблема в том, что из этого 9 байтового файла должны получится 9 двухбайтовых кодиков -
80 02 4B 02 7D 71 01 86 2E
а получается только это -
2, {}

Отредактировано Slava_K (Июнь 4, 2012 17:22:49)

Прикреплённый файлы:
attachment X.dat (9 байт)

Офлайн

#9 Июнь 4, 2012 17:26:57

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

вопрос про Pickle

>>> open('X.dat', 'r').read()
'\x80\x02K\x02}q\x01\x86.'



Офлайн

#10 Июнь 4, 2012 17:27:49

Slava_K
От: Минск
Зарегистрирован: 2012-06-04
Сообщения: 24
Репутация: +  0  -
Профиль  

вопрос про Pickle

fata1ex
>>> open('X.dat', 'r').read()
'\x80\x02K\x02}q\x01\x86.'
Это тоже не совсем то, хотя уже ближе

Отредактировано Slava_K (Июнь 4, 2012 17:28:01)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version