Thanx Peter for your prompt response. I replaced tabs with spaces and had no problem reading the file. I think however it is sth to correct in next versions
BR Chris On Wed, Jan 25, 2017 at 1:32 PM Peter Otten <__pete...@web.de> wrote: > 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 > -- https://mail.python.org/mailman/listinfo/python-list