Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从另一个文件更改cfg.py文件中的变量?_Python_Namespaces_Save_Config - Fatal编程技术网

Python 如何从另一个文件更改cfg.py文件中的变量?

Python 如何从另一个文件更改cfg.py文件中的变量?,python,namespaces,save,config,Python,Namespaces,Save,Config,我正在尝试创建一个配置文件来存储我将在另一个文件中使用的一些值。但我希望另一个主文件更改配置文件中的变量,如下所示: 我的配置文件: #cfg.py a = [2,3,4] 我的主文件: #main.py import cfg print(cfg.a) cfg.a[1] = 10 print(cfg.a) 它回来了 [2,3,4] [2,10,4] 这很好,但是当我关闭所有内容并再次查看我的cfg.py时,cfg.py文件中a的值没有改变。我错过什么了吗?我是否应该使用某种保存函数来确保我

我正在尝试创建一个配置文件来存储我将在另一个文件中使用的一些值。但我希望另一个主文件更改配置文件中的变量,如下所示:

我的配置文件:

#cfg.py
a = [2,3,4]
我的主文件:

#main.py
import cfg
print(cfg.a)
cfg.a[1] = 10
print(cfg.a)
它回来了

[2,3,4]
[2,10,4]
这很好,但是当我关闭所有内容并再次查看我的cfg.py时,cfg.py文件中a的值没有改变。我错过什么了吗?我是否应该使用某种保存函数来确保我正在将新值写入文件?还是我完全错了

似乎我正在更改cfg.a的一个实例,而不是原始cfg.py文件中对a的引用。

您可以使用“configobj”包进行一些小的调整

配置文件可以如下所示:

#cfg.py
a = 2,3,4
然后在python中:

import configobj
conf = configobj.ConfigObj("cfg.py")
conf["a"][1] = 10
conf.write()  # Actually writes changes to file

使用
configParser
而不是导入模块时,由文件支持的事实是一个实现细节。想象一下这个文件并不存在。是的,认识彼得很高兴,谢谢。我将研究其他方案来实现这一点。