2011-06-24 56 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对象,因为它只是将内存中的字节写入磁盘。我希望这回答你的问题:) –

相关问题