我目前有一个带有一堆带有值的全局变量的python文件。我想从一个单独的python脚本中永久地更改这些值。我试过setattr等,但它似乎并没有工作。有没有办法做到这一点?如何从Python脚本更改python文件中的变量值
回答
简短的回答是:不。这不值得麻烦。
这听起来像你正在尝试创建一个配置文件,然后让你的应用程序更新它。你应该尝试使用ConfigParser,内置模块,可以在有限麻烦你读写配置文件:http://docs.python.org/library/configparser.html
currently have a python file with a bunch of global variables with values
让我们假设它看起来像这样。 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代码。
这是一个可怕的解决方案。请不要实际使用它。
我用上面的代码创建了相关的python文件来测试它,我得到这个错误:python test.py Traceback(最近调用最后一次): 文件“test.py”,第7行,在
是的。你做错了什么。你在打字时没有想到。有时候发布的代码有错误。在打字之前,你需要考虑一下,看看你是否理解了代码。 – 2010-08-23 21:18:38
也许我只是不明白蟒蛇,因为我相对较新呢?我输入你的代码,正在考虑它,最后抓到了失踪的对象。但我认为全局变量(在编辑之前)引用了该文件或可能是一些内置的python变量。无论如何,谢谢你的解决方案。我正在尝试你的和@ carl的。 – lango 2010-08-23 21:38:09
- 1. 从Python脚本更改环境变量
- 2. 如何从另一个python脚本更改一个python脚本中的变量值
- 3. 变量将不会从python中的文本文档中更改
- 4. Python脚本改变.tcx文件(XML)
- 5. 如何更改脚本中的变量?
- 6. 使用python脚本更改python文件中的字体\颜色
- 7. 更改多个文件名 - python脚本
- 8. 如何在Python中更改变量
- 9. 如何从python文件访问php文件的变量值
- 10. 从Python脚本中更改CMD路径
- 11. Python更改变量
- 12. 如何修改python脚本中的系统路径变量?
- 13. 从批处理文件修改python程序中变量的值
- 14. 如何更新不同脚本文件中变量的值?
- 15. Python - 从文本文件求和变量
- 16. 如何访问从shell脚本传递的python文件中的变量..?
- 17. 与进口从python脚本变量python脚本问题
- 18. Python变量赋值更改值
- 19. 如何将conf文件中的变量调用到python脚本或文件中?
- 20. Python-如何更改函数内的变量的文件名
- 21. Python更改字符串变量的值
- 22. 如何在基于配置文件中的变量的python脚本中调用另一个python脚本?
- 23. Python,如何更改父范围中变量的值?
- 24. 奇怪的值更改而不更改文本文件Python
- 25. Python 3.3.3:从Python脚本运行文件?
- 26. 如何在PyCharm中运行Python脚本后保存变量值?
- 27. 使用abaqus将变量传递给python脚本文件python 2.6.2
- 28. python如何更改全局变量
- 29. 动态从python脚本导入变量
- 30. 从python传递变量到shell脚本
你的意思是说你想修改另一个脚本吗? – alternative 2010-08-23 20:50:06
我不知道标准库是否有能力解析内存中的Python源文件,更改它,然后写入一个文件? – 2010-08-23 20:51:28
你的其他问题是无关紧要的。请**不要在这里提及**。请删除对“其他问题”的引用。请专注。 – 2010-08-23 20:52:48