我目前有一个python文件,其中包含一堆带有值的全局变量。我想从一个单独的python脚本永久更改这些值。我已经尝试过setattr等但它似乎没有用。有没有办法做到这一点?
答案 0 :(得分:7)
简短的回答是:不要。这不值得麻烦。
听起来您正在尝试创建配置文件,然后让您的应用程序更新它。您应该尝试使用ConfigParser,这是一个内置模块,可以为您轻松读取和写入配置文件:http://docs.python.org/library/configparser.html
答案 1 :(得分:4)
目前有一个python文件,其中包含一堆值为
的全局变量
让我们假装它看起来像这样。 globals.py
this = 1
that = 2
此文件中没有其他内容。什么都没有。
让我们进一步假装这个文件使用如下。
from globals import *
让我们进一步假装我们有一些模拟需要“更新”globals.py
import os
os.rename( "globals.py", "globals.bak" )
with open( "globals.py", "w" ) as target:
for variable in ('some', 'list', 'of', 'sensible', 'globals'):
target.write( "{0!s} = {1!r}".format( variable, globals()[variable] )
基本上,您从全局字典中重新创建Python代码。
这是一个可怕的解决方案。请不要实际使用它。