更改导入模块的变量似乎不起作用。 [Python]
Posted
技术标签:
【中文标题】更改导入模块的变量似乎不起作用。 [Python]【英文标题】:Changing variables of imported module doesnt seem to work. [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
的实际内容发生变化?
【参考方案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()
【讨论】:
以上是关于更改导入模块的变量似乎不起作用。 [Python]的主要内容,如果未能解决你的问题,请参考以下文章
似乎无法在 Python 的同一脚本中使用导入时间和导入日期时间
在 ~/.bashrc 中使用 PYTHONPATH 导入 Python 模块不起作用