Christos Malliopoulos wrote: > Hi, > > I run Ubuntu 16.04 LTS in a VM using VMWare Workstation on a Windows 10 > host. > apt show python-configparser shows 3.3.0r2-2 > On python 2.7.12 I use the following code: > > import configparser as cfg > root = > u'/'.join(os.path.split(os.path.abspath('cfg.py'))[0].split('/')[:-2]) > cp = cfg.ConfigParser(interpolation = cfg.ExtendedInterpolation()) > cp.read(os.path.abspath(os.path.join(root, u'config/sampling.cfg')))
This looks confusing. Are you sure you are reading the right sampling.cfg? > cp.items('Sampling') > > sampling.cfg contains the following lines: > [Sampling] > nobs = 10 > nzin = 4 > nzout = 3 > ndrops = 1 > > inh = day,loc,z0,value > outh = day,loc,sku,value > > invalran = 1,1e3 > outvalran = 1,1000 > > cp.items(u'Sampling') prints the following: > [(u'nobs', u'10'), > (u'nzin', u'4'), > (u'nzout', u'3\nndrops = 1'), > (u'inh', u'day,loc,z0,value'), > (u'outh', u'day,loc,sku,value'), > (u'invalran', u'1,1e3'), > (u'outvalran', u'1,1000')] > > ndrops = 1 is not parsed correctly It looks like the parser does not expand tabs, and your problem may be mixing tabs and spaces: $ cat demo.py import configparser data = """\ [Sampling] \talpha = 1 \tbeta = 2 \tgamma = 3 \tdelta = 4 """ print "what you see:" print data.expandtabs(4) print "what the parser sees:" print data.replace("\t", " ") with open("sampling.cfg", "w") as f: f.write(data) cp = configparser.ConfigParser( interpolation=configparser.ExtendedInterpolation() ) cp.read("sampling.cfg") for item in cp.items('Sampling'): print item $ python demo.py what you see: [Sampling] alpha = 1 beta = 2 gamma = 3 delta = 4 what the parser sees: [Sampling] alpha = 1 beta = 2 gamma = 3 delta = 4 (u'alpha', u'1') (u'beta', u'2\ngamma = 3') (u'delta', u'4') $ -- https://mail.python.org/mailman/listinfo/python-list