在文件中进行更改后,如何在python上刷新/重新加载导入的文件

时间:2019-04-17 14:21:28

标签: python python-import

我正在尝试刷新或重新加载在脚本中导入的整个文件,在该脚本中我曾经更改了该文件中的某些内容,然后使用该脚本重新加载了在自身中导入的文件。

在使用包含导入文件的脚本对其进行更改后,如何刷新作为模块导入的脚本文件。

这就是我要实现的目标

#lists_values.py
Christine = [0,0,0]
George = [900,123,1]
#suppose Ralf = [ 0, 0, 0 ] is going at     this position soon.

#main.py
from lists_values import *
import lists_values

def insertRalf():
    with open("lists_values.py", "a") as myfile:
        myfile.write("Ralf = [0, 0, 0]\n")

insertRalf()

def resultView():
    #Maybe some code to refresh the file I imported? Which is the lists_value since I added another list I want to print it.

    #Print the NEW values of lists_values
    fd = open("lists_values.py", "r")
    print(fd.read())
    fd.close()
     #My goal is to see the new value 'Ralf', but since I imported the file when it was still unchanged, I wont see any Ralf if I print it now.

resultView()

1 个答案:

答案 0 :(得分:0)

欢迎使用Stackoverflow。有更好的方法来做您想做的事!

您似乎正在使用values模块作为某种命名空间。仅将数据存储在某个文件中会更明智。如果您阅读shelve module的文档,您会发现对于简单的值和字符串键,它在一定范围内充当磁盘上的字典。

在Python命名空间中动态放置名称是一种“代码味道”-由于您不知道将定义什么名称,因此最终还必须使用getattr或类似乏味的内容来动态访问它们。