如何从python脚本更改python文件中的变量值

时间:2010-08-23 20:48:29

标签: python

我目前有一个python文件,其中包含一堆带有值的全局变量。我想从一个单独的python脚本永久更改这些值。我已经尝试过setattr等但它似乎没有用。有没有办法做到这一点?

2 个答案:

答案 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代码。

这是一个可怕的解决方案。请不要实际使用它。