Форум сайта python.su
Допустим у меня есть запикленый файл.
Вот что я с ним делаю:
X = open('filename.dat', 'rb') Y = cPickle.load(x)
Офлайн
568
Y.__dict__
type(Y)
dir(Y)
??????
Офлайн
FishHookМожно чуть понятней?
Y.__dict__
type(Y)
dir(Y)
??????
Что б для совсем нубов дошло)))Отредактировано Slava_K (Июнь 4, 2012 12:21:21)
Офлайн
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']
>>> 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)
Офлайн
Вобщем из X.dat
Надо получить это -
80 02 4B 02 7D 71 01 86 2E
Отредактировано Slava_K (Июнь 4, 2012 12:42:31)
Прикреплённый файлы:
X.dat (9 байт)
Офлайн
52
>>> import cPickle >>> file = open('X.dat', 'rb') >>> tup = cPickle.load(file) >>> tup (2, {})
Офлайн
568
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'
Офлайн
FishHookВы слишком хорошего мнения о моих познаниях Python'a
Ты понял, что у тебя есть серилизованный кортеж.
По кортежу можно сделать цикл, или извлечь значение по индексу, или преобразовать в список, или применить один из…

80 02 4B 02 7D 71 01 86 2E
2, {}
Отредактировано Slava_K (Июнь 4, 2012 17:22:49)
Прикреплённый файлы:
X.dat (9 байт)
Офлайн
52
>>> open('X.dat', 'r').read() '\x80\x02K\x02}q\x01\x86.'
Офлайн
fata1exЭто тоже не совсем то, хотя уже ближе>>> open('X.dat', 'r').read() '\x80\x02K\x02}q\x01\x86.'
Отредактировано Slava_K (Июнь 4, 2012 17:28:01)
Офлайн