Help with ConfigParser

T

tony.ha

Hello I use ConfigParser as show below to read a config.txt file;

from ConfigParser import ConfigParser

config = ConfigParser()
config.read('config.txt')
items = config.items('FV')
for item in items:
module_name = item[0]
print module_name


The config.txt file has the following

[FV]
# Set the module to "1" to enable the regression test run on it, otherwise
set it to "0"

ip_dtlmmio0_1803: 0
ip_gpio0_4004: 0
ip_dmac0_1903: 0
ip_ptA_a_sdramc_2022: 1
ip_timer0_3012: 0



the output has been convert to lowercase, i.e ip_ptA_a_sdramc_2022 become
ip_pta_a_sdramc_2022
(the captial letter 'A, become lower case 'a').

Question: How can I pervent ConfigParse to convert Upper case yo lower
case??, thanks.
 
P

Peter Otten

Question: How can I pervent ConfigParse to convert Upper case yo lower
case??, thanks.

http://docs.python.org/dev/lib/RawConfigParser-objects.html

"""
optionxform(option)

Transforms the option name option as found in an input file or as passed in
by client code to the form that should be used in the internal structures.
The default implementation returns a lower-case version of option;
subclasses may override this or client code can set an attribute of this
name on instances to affect this behavior. Setting this to str(), for
example, would make option names case sensitive.
""""

If you don't pass defaults:

config = ConfigParser()
config.optionxform = str
# ...

Or, to be on the safe side:

class MyCasePreservingConfigParser(ConfigParser):
optionxform = str

config = MyCasePreservingConfigParser()
# ...

Peter
 
E

Enrico

Hi,
from the documentation:

optionxform(option)

Transforms the option name option as found in an input file or as passed in
by client code to the form that should be used in the internal structures.
The default implementation returns a lower-case version of option;
subclasses may override this or client code can set an attribute of this
name on instances to affect this behavior. Setting this to str(), for
example, would make option names case sensitive.

Bye,
Enrico
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,813
Latest member
lawrwtwinkle111

Latest Threads

Top