2011-06-24 53 views
2

我想通過映射在Python file.how關鍵替換字典值能不能做到,別人幫我,我在這field.sorry我的英語新..如何使用python寫入特定位置的文件?

+0

你必須寫整個文件。你不能插入文件。加載字典。修改該值。將文件寫回磁盤。當然,如果新值與舊值相同,你可以修改它的位置..... –

回答

1

我不太清楚我理解你的問題,但我會盡力提供幫助。

要將對象保存到Python文件中,您可以使用稱爲Pickle的進程。

你會做的是寫你的對象的文件,然後如果你想改變它,你可以unickickle,改變價值,並repickle。

import pickle 

# Write object to file 
sampleDict = {'a': 1, 'b': 2, 'c': 3} 
output = open('dictionary.pickle', 'wb') 
pickle.dump(sampleDict, output) 
output.close() 

# Read object back in 
pickledDictionary = open('dictionary.pickle', 'rb') 
reimportSampleDict = pickle.load(pickledDictionary) 
pickledDictionary.close() 

# So far so good... No we add an item and repickle. 
sampleDictNew['new_value'] = 4 
pickledDictionary = open('dictionary.pickle', 'rb') 
pickle.dump(reimportSampleDict, output) 
pickledDictionary.close() 

print sampleDict 
print reimportSampleDict 

請注意,如果您嘗試對Python中的標準字典中的鍵進行排序,這是一個壞主意。 Python不能保證這些密鑰將保留它們的位置,即它們被添加進去。

如果您需要能夠按鍵排序字典並可靠地插入字典中的某些位置,請嘗試使用Python 3新的有序詞典集合。請參閱這裏瞭解更多詳情:http://docs.python.org/dev/whatsnew/2.7.html#pep-0372

如果您使用Python 2. *,請檢查:http://www.voidspace.org.uk/python/odict.html,因爲它提供了類似的功能。

無論哪種方式,相同的Pickle進程可用於Dictionary對象和Ordered Dictionary對象。

我希望這有助於

傑弗裏·凱文撬

+0

你好,謝謝你,但它工作。但有沒有其他方式沒有使用'pickle'? – Vinodh

+0

@Jeffery @David:如果我們使用谷歌應用程序引擎數據存儲區,鹹菜會起作用嗎? – Vinodh

+0

我相信如此。 Pickle應該能夠編寫任何Python對象,因爲它只是將內存中的字節寫入磁盤。我希望這回答你的問題:) –

相關問題