假设您有一个config.py
,里面有
settings = read_yaml('settings.yaml')
所以config.settings
是一本字典。
在一个脚本foo.py
中,您拥有:
import config
config.settings['foo'] = str(time.time())
write_yaml('settings.yaml', config.settings)
,在另一个脚本bar.py
中,您拥有
import config
while True:
sleep(10)
print config.settings['foo']
如何在任何时候运行bar.py
之后如何将foo.py
中的打印值更新为新值,而又不会明显地读取文件,而又将其视为{{1}中的while循环}必须尽快!
我目前在单独的bash线程上运行它们,即:
bar.py
但是如果可以的话,我可以在线程中运行bar吗?
答案 0 :(得分:2)
我不知道您需要多快。但是肯定可以用importlib.reload
重新加载config
模块。因此config.py
和foo.py
保持不变,而您的bar.py
变为:
import importlib
import config
while True:
print config.settings['foo']
sleep(10)
importlib.reload(config)
更新
以上示例适用于Python> = 3.4,对于早期版本的Python 3使用imp.reload
,对于Python 2使用reload
。