[Tutor] troubles with ConfigParser

Eur van Andel eur at fiwihex.nl
Sat Nov 15 21:56:37 EST 2003


I did use the configparser and it is working great. There are some troubles,
though, especially when writing an INI file. Reading is just fine.

here is my code:

#       program settings4.py
import sys
import ConfigParser

if __name__=="__main__":

   st = ConfigParser.ConfigParser()   

   # get pump controller parameters 
   st.set('co2', 'sollwert', 77)
   st.set('pump1', 'max_speed', 17)
   st.set('pump2', 'max_speed', 27)
   st.set('pump1', 'manual_speed', 37)
   st.set('pump2', 'manual_speed', 47)
   st.set('pump1', 'manual', 7)
   st.set('pump2', 'manual', 7)
   st.set('temps', 'heat', 57)
   st.set('temps', 'cool', 67)

   # get fan settings
   for n in range(6):
      st.add_section('fan%1d' % n )
      st.set('fan%1d' % n, 'heat', 50+n)
      st.set('fan%1d' % n, 'cool', 60+n)

      st.set('fan%1d' % n, 'fan_manual_speed', n)
      st.set('fan%1d' % n, 'fan_manual', 10+n)     

      st.set('fan%1d' % n, 'dtai', 1)       
      st.set('fan%1d' % n, 'dtao', 1)      
      st.set('fan%1d' % n, 'dtwl', 1)       
      st.set('fan%1d' % n, 'dtwh', 1)

   for sect in st.sections():
      print '[', sect, ']'
      for opt in st.options(sect):
          print opt
#          print st.get(sect, opt)

#   st.write('settings.ini')


If I unhash either of the two lines, I run into trouble:

>Traceback (most recent call last):
>  File "st_try.py", line 78, in ?
>    print st.get(sect, opt)
>  File "/usr/local/lib/python2.2/ConfigParser.py", line 280, in get
>    return self._interpolate(section, option, value, d)
>  File "/usr/local/lib/python2.2/ConfigParser.py", line 288, in _interpolate
>    if value.find("%(") != -1:
>AttributeError: 'int' object has no attribute 'find'

It seems the get() doesn't work. Did I use the set() function wrong?

>Traceback (most recent call last):
>  File "st_try.py", line 81, in ?
>    st.write('settings.ini')
>  File "/usr/local/lib/python2.2/ConfigParser.py", line 351, in write
>    fp.write("[%s]\n" % section)
>AttributeError: 'str' object has no attribute 'write'

Should this file exist? (It does) Should I open it first? (I tried)

Ir. E.E. van Andel, Fine Wire Heat Exchangers, Fiwihex B.V. www.fiwihex.com
Wierdensestraat 74, NL-7604 BK  Almelo, The Netherlands   eur at fiwihex.nl
phone +31-546-491106  fax +31-546-491107  mobile +31-653-286573  

More information about the Tutor mailing list