[英]Is there a way to view cPickle or Pickle file contents without loading Python in Windows?
我使用 cPickle 來保存程序每次運行的數據集。 由於有時我需要在不運行代碼的情況下查看數據的輪廓,因此我想要一種只需雙擊文件即可快速查看內容的簡單方法。 我試圖避免每次都加載終端並將 python 指向一個文件,只是為了運行一些print
腳本。
我尋找 Notepad++ 插件但找不到任何東西。
有什么簡單的方法可以做到這一點嗎? 有沒有人有什么建議?
注意:我運行的是 Windows 7。
對於 Python 3.2+/2.7+,您可以__repr__
查看( __repr__
的)泡菜:
$ python -c "import pickle; pickle.dump({'hello': 'world'}, open('obj.dat', 'wb'))"
$ python -mpickle obj.dat
{'hello': 'world'}
將其集成到 Windows shell 中應該很容易。
我真的懷疑有什么辦法可以做到這一點,因為使用pickle
,您幾乎可以打包任何東西。 取消酸洗時,您需要能夠加載對象被酸洗時加載的模塊等。 換句話說,一般來說,為了能夠unpickle
某些東西,python 需要能夠重現程序的“環境”(或至少是足夠接近的近似值)——加載的模塊、全局命名空間中的類等。 .. 一般來說,如果沒有用戶的幫助,這是不可能的。 考慮:
import pickle
class Foo(object): pass
a = Foo()
with open('data.pickle','wb') as f:
pickle.dump(a,f)
現在,如果您嘗試在單獨的腳本中恢復它,python 無法知道Foo
是什么樣子,因此它無法恢復對象(除非您在該腳本中定義了合適的Foo
對象)。 這實際上不是一個可以在沒有一些人為干預的情況下完成的過程。
當然,可以嘗試一個可以說是有用的特殊情況,即您只是從標准庫中腌制內置對象和事物……但我認為您無法編寫通用的 unpickler 擴展。
您還可以在終端上創建別名,例如:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.