【问题标题】:Changing variables of imported module doesnt seem to work. [Python]更改导入模块的变量似乎不起作用。 [Python]
【发布时间】:2016-12-19 10:47:54
【问题描述】:

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

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

所以当我将它导入到我的主 python 文件中时,添加一个单词并打印它,它工作正常,但 dictionary.py 文件不会受到影响。我希望 dictionary.py 文件中的“dict”变量也发生变化。这是我的主文件代码:

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]`

有什么帮助吗?谢谢

【问题讨论】:

  • 您的意思是当您向dict 添加项目时,您希望dictionary.py 的实际内容发生变化?

标签: python-2.7 dictionary


【解决方案1】:

您在任何时候都不会写入文件。存储字典等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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多