2013-07-28 53 views
0

我是全新的python和來自php。如何將變量的所有內容轉儲到文件中,類似於var_dump?經過搜索後,我想出了這個:轉儲變量到文件

from inspect import getmembers 
from pprint import pprint 
pprint(getmembers(_variable_)) 

但是它顯示在命令窗口不是一個友好的可讀文件。我知道如何寫入文件,我試過這個:

f.write(pprint(getmembers(_variable_))) 

但它給了我一個類型錯誤。希望能有所幫助,謝謝。

+0

看看泡菜模塊 –

回答

1

您是否嘗試過使用pickle?這是在標準庫,它應該像這樣幾乎工作:

import pickle 

# Write to file 
pickle.dump(obj, open("file.dat", "wb")) 

# Read that file 
obj = pickle.load(open("file.dat", "rb")) 
+0

我相信這是找什麼即時通訊的但林不知道如何讀它。我要找的是能夠讀取轉儲文件並以可讀的方式查看所有結構。用泡菜,一些數據是人類可讀的,但不是全部。 –

+1

嘗試使用「json」代替pickle - 就像'import json; json.dump(obj,...) - 它是「人類可讀的」 - 但它只能編碼數字,字符串字典和列表等本機類型 - 而pickle適用於任意Python對象 – jsbueno

+0

JSON可能就是你想要的。它不如'pickle'完整,但是如果你使用的所有東西都是「簡單」的對象,就會有竅門,就像@jsbueno所說的那樣。 –

1

假設你滿意的pprint長相如何輸出和你不找對象序列化,pformat做你,你有什麼重新嘗試去做。

from pprint import pformat 
f.write(pformat(getmembers(_variable_))) 
+0

我認爲我在尋找的是序列化,比如泡菜。 –

+0

您打算將對象讀回內存嗎?如果是,那麼序列化肯定是你需要的。如果這只是人類能夠閱讀的東西,那麼你可能不會。你的程序,所以只有你可以告訴。祝你好運。 – jpmc26