简体   繁体   中英

how to change a variable value in a python file from a python script

I currently have a python file with a bunch of global variables with values. I want to change these values permanently from a separate python script. I've tried setattr and such but it doesnt seem to work. Is there a way to do this?

The short answer is: don't. It won't be worth the trouble.

It sounds like you are trying to create a configuration file and then have your application update it. You should try using ConfigParser, a built-in module that can read and write configuration files for you with limited hassle: http://docs.python.org/library/configparser.html

currently have a python file with a bunch of global variables with values

Let's pretend it looks like this. globals.py

this = 1
that = 2

And there's nothing else in this file . Nothing.

Let's further pretend that this file is used as follows.

from globals import *

Let's further pretend that we have some simulation which needs to "update" 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] )

Basically, you recreate Python code from your global dictionary.

This is a dreadful solution. Please don't actually use it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM