Есть ли способ просмотреть содержимое cPickle или Pickle без загрузки Python в Windows? - программирование
Подтвердить что ты не робот

Есть ли способ просмотреть содержимое cPickle или Pickle без загрузки Python в Windows?

Я использую cPickle для сохранения наборов данных из каждого запуска программы. Поскольку мне иногда нужно видеть контур данных без запуска кода, я бы хотел, чтобы простой способ быстро просмотреть содержимое, просто дважды щелкнув файл. Я пытаюсь не загружать терминал и указывать python в файл каждый раз, просто для запуска некоторых print script.

Я искал плагины Notepad ++, но ничего не нашел.

Есть ли простой способ сделать это? У кого-нибудь есть предложения?

Примечание. Я запускаю Windows 7.

4b9b3361

Ответ 1

Для Python 3.2 +/2.7 + вы можете просмотреть (__repr__ of) соленые огурцы из командной строки:

$ python -c "import pickle; pickle.dump({'hello': 'world'}, open('obj.dat', 'wb'))"
$ python -mpickle obj.dat
{'hello': 'world'}

Это должно быть легко интегрировать в оболочку Windows.

Ответ 2

Я действительно сомневаюсь, что есть способ сделать это, так как с помощью pickle вы можете упаковать практически все. При рассыпке вам необходимо загрузить модули и т.д., Которые были загружены, когда объект был маринован. Другими словами, в целом, чтобы иметь возможность unpickle что-то, python должен иметь возможность воспроизвести "среду" программы (или, по крайней мере, достаточно близкое приближение) - загруженные модули, классы в глобальном пространстве имен, и т.д. В общем, это невозможно без какой-либо помощи пользователя. Рассмотрим:

import pickle
class Foo(object): pass

a = Foo()
with open('data.pickle','wb') as f:
    pickle.dump(a,f)

Теперь, если вы попытаетесь восстановить это в отдельном script, python не знает, как выглядит Foo, и поэтому он не может восстановить объект (если вы не определите подходящий объект Foo в что script). Это не процесс, который можно сделать без вмешательства человека.

Конечно, возможно, полезный частный случай, когда вы просто собираете встроенные объекты и вещи из стандартной библиотеки, может быть предпринято... но я не думаю, что вы могли бы написать общее расширение для разблокировки.

Ответ 3

Вы также можете создать псевдоним на своем терминале, например:

alias pvw="python -mpickle "

в моем случае:

pvw obj.dat                                   
         ID    A_ID   B_ID   PAST_ID
    0    20    1008   4771     425  
    1    20    2000   4771     425  
    2    20    2015   4771     425

Ответ 4

Есть хороший инструмент с пользовательским интерфейсом и опциями редактирования файлов Pickle. Нажмите здесь