我有一些参数写入到动态配置文件的脚本,我需要从基于更新的参数链接模块调用一些功能。 然而,当我打电话重载()的配置文件,有时我看不出有什么变化。
下面的代码片段会解释的情况:
import options
import os
import someothermodule
def reload_options():
global options
options = reload(options)
def main():
print dir(options)
# do some work to get new value of the parameter
new_value = do_some_work()
with open('./options.py', 'w') as fd_out:
fd_out.write('NEW_PARAMETER = %d\n' % (new_value,)) # write
fd_out.flush()
os.fsync(fd_out.fileno())
reload_options()
print dir(options)
someothermodule.call_some_func()
if __name__ == '__main__':
main()
有时,(这并不总是发生),打印相同数据在两个打印报表,这意味着NEW_PARAMETER
一直没有露面。 我怀疑这是因为该文件没有得到刷新到磁盘,所以我说flush()
和fsync()
语句,但他们似乎并没有帮助。
任何人都可以帮我诊断的问题?