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

4 投票
2 回答
10275 浏览
提问于 2025-04-16 03:11

我现在有一个Python文件,里面有很多全局变量和它们的值。我想从另一个Python脚本中永久性地改变这些值。我试过用setattr之类的方法,但好像不管用。有没有什么办法可以做到这一点?

2 个回答

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

这真的是个糟糕的解决方案。请不要真的使用它。

7

简单来说,就是别这样做。这会让你费很多劲,但不值得。

听起来你是想创建一个配置文件,然后让你的应用程序去更新它。你可以试试使用ConfigParser,这是一个内置模块,可以帮你轻松地读写配置文件,省去很多麻烦:http://docs.python.org/library/configparser.html

撰写回答