[Tutor] Looping + Variables
jtp at nc.rr.com
Sun Oct 21 23:54:50 CEST 2007
I'm trying to write a loop to simplify my life (and code :)). The
loop is going to iterate over a list of values that I have to change
in a file. I think my problem is better described with some code. :)
interface = "eth0"
address = "192.168.1.5"
mask = "255.255.255.0"
gateway = "192.168.1.1"
def replaceText( old , new , file ):
for line in fileinput.FileInput( file , inplace = 1 ):
line = line.replace( old , new )
sys.stdout.write( line )
editValues = ( 'interface' , 'address' , 'mask' , 'gateway' )
for value in editValues:
foo( '$' + value + '$' , value , '/etc/conf.d/net' )
I need to edit the values listed in "editValues" in a specific file.
The file looks something like this before the code runs:
config_$interface$=( "$address$ netmask $mask$" )
routes_$interface$=( "default via $gateway$" )
As you can see, the values that I want to edit are originally in the
file as $variable$. The goal of my loop is to iterate over the
editValues tuple and edit the $variable$ and put the ACTUAL variable
After running my code, the file looks like this:
config_interface=( "address netmask mask" )
routes_interface=( "default via gateway" )
If I put some debug statements in the function replaceText(), it
shows that what is passed in is actually the value "address" and
"interface", instead of "192.168.1.5" or "eth0".
Obviously that's not what I want. :)
I imagine I'm missing something obvious. Doh! Thoughts? Ideas?
More information about the Tutor