更改导入模块的变量似乎不起作用。 [Python的]

时间:2016-08-12 12:10:50

标签: python-2.7 dictionary

我正在尝试在python文件中创建一个单独的字典,所以我可以导入它并执行诸如搜索键,添加单词,删除单词等内容。该文件是dictionary.py。它包含:

#-*-coding:utf8-*-
dict={}

因此,当我在我的主python文件中导入它时,添加一个单词并打印它,它工作正常,但是dictionary.py文件不会受到影响。我想要" dict"在dictionary.py文件中的变量也要改变。这是我的主文件代码:

import os
import sys
import dictionary as tdict
print ":::::::::::::::::::"
print "Add word"
print ":::::::::::::::::::"
name=raw_input("Word: ")
print
mean=raw_input ("Meaning: ")
tdict.dict[name]=mean
print "::::Word added::::"
print
print "::::::::::::::::::::::"
print "Dictionary:"
print
for x in tdict.dict:
    print "",x,":",tdict.dict[x]`

有任何帮助吗? THX

1 个答案:

答案 0 :(得分:0)

您不是在任何时候写入文件。存储python对象(如字典)的正确方法是使用pickle

import pickle


myDictionary = {}
dictionaryFile = open('dictionary', 'wb')
pickle.dump(mydictionary, dictionaryFile)
dictionaryFile.close()

这将创建一个名为dictionary的pickle文件,其中包含myDictionary

阅读字典:

import pickle


dictionaryFile = open('dictionary', 'rb')
myDictionary = pickle.load(dictionaryFile)
dictionaryFile.close()

然后,您可以对字典进行任何更改,然后再将其保存到文件中:

import pickle


dictionaryFile = open('dictionary', 'rb')
myDictionary = pickle.load(dictionaryFile)
dictionaryFile.close()

myDictionary['key1'] = 'value1'

dictionaryFile = open('dictionary', 'wb')
pickle.dump(mydictionary, dictionaryFile)
dictionaryFile.close()