Python之configparse模块学习(二十)

 ConfigParser模块是对配置文件处理比较好的一个模块,它可以读取后缀为.ini的文件内容,以及增加

配置文件的内容,比如我们在一个文件夹config中新增config.ini,填写的信息是mysql的信息,来连接数

据库信息。我们先来看ConfigParser模块常用的方法,以及该模块的详细的帮助信息,然后通过读取数

据库的配置信息,实现对mysql的连接,见查看该模块的常用方法以及该模块详细的帮助信息代码:

复制代码
#!/usr/bin/env python 
#-*- coding:utf-8 -*

import ConfigParser

print dir(ConfigParser)
print type(help(ConfigParser))
复制代码

 

见执行如上的代码后,输出的信息:

复制代码
C:\Python27\python.exe D:/git/Python/Day/index.py
['ConfigParser', 'DEFAULTSECT', 'DuplicateSectionError', 'Error', 'InterpolationDepthError', 'InterpolationError', 'InterpolationMissingOptionError', 'InterpolationSyntaxError', 'MAX_INTERPOLATION_DEPTH', 'MissingSectionHeaderError', 'NoOptionError', 'NoSectionError', 'ParsingError', 'RawConfigParser', 'SafeConfigParser', '_Chainmap', '_UserDict', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_default_dict', 're']
Help on module ConfigParser:

NAME
    ConfigParser - Configuration file parser.

FILE
    c:\python27\lib\configparser.py

DESCRIPTION
    A setup file consists of sections, lead by a "[section]" header,
    and followed by "name: value" entries, with continuations and such in
    the style of RFC 822.
    
    The option values can contain format strings which refer to other values in
    the same section, or values in a special [DEFAULT] section.
    
    For example:
    
        something: %(dir)s/whatever
    
    would resolve the "%(dir)s" to the value of dir.  All reference
    expansions are done late, on demand.
    
    Intrinsic defaults can be specified by passing them into the
    ConfigParser constructor as a dictionary.
    
    class:
    
    ConfigParser -- responsible for parsing a list of
                    configuration files, and managing the parsed database.
    
        methods:
    
        __init__(defaults=None)
            create the parser and specify a dictionary of intrinsic defaults.  The
            keys must be strings, the values must be appropriate for %()s string
            interpolation.  Note that `__name__' is always an intrinsic default;
            its value is the section's name.
    
        sections()
            return all the configuration section names, sans DEFAULT
    
        has_section(section)
            return whether the given section exists
    
        has_option(section, option)
            return whether the given option exists in the given section
    
        options(section)
            return list of configuration options for the named section
    
        read(filenames)
            read and parse the list of named configuration files, given by
            name.  A single filename is also allowed.  Non-existing files
            are ignored.  Return list of successfully read files.
    
        readfp(fp, filename=None)
            read and parse one configuration file, given as a file object.
            The filename defaults to fp.name; it is only used in error
            messages (if fp has no `name' attribute, the string `<???>' is used).
    
        get(section, option, raw=False, vars=None)
            return a string value for the named option.  All % interpolations are
            expanded in the return values, based on the defaults passed into the
            constructor and the DEFAULT section.  Additional substitutions may be
            provided using the `vars' argument, which must be a dictionary whose
            contents override any pre-existing defaults.
    
        getint(section, options)
            like get(), but convert value to an integer
    
        getfloat(section, options)
            like get(), but convert value to a float
    
        getboolean(section, options)
            like get(), but convert value to a boolean (currently case
            insensitively defined as 0, false, no, off for False, and 1, true,
            yes, on for True).  Returns False or True.
    
        items(section, raw=False, vars=None)
            return a list of tuples with (name, value) for each option
            in the section.
    
        remove_section(section)
            remove the given file section and all its options
    
        remove_option(section, option)
            remove the given option from the given section
    
        set(section, option, value)
            set the given option
    
        write(fp)
            write the configuration state in .ini format

CLASSES
    Error(exceptions.Exception)
        DuplicateSectionError
        InterpolationError
            InterpolationDepthError
            InterpolationSyntaxError
        NoOptionError
        NoSectionError
        ParsingError
            MissingSectionHeaderError
    RawConfigParser
        ConfigParser
            SafeConfigParser
    
    class ConfigParser(RawConfigParser)
     |  Methods defined here:
     |  
     |  get(self, section, option, raw=False, vars=None)
     |      Get an option value for a given section.
     |      
     |      If `vars' is provided, it must be a dictionary. The option is looked up
     |      in `vars' (if provided), `section', and in `defaults' in that order.
     |      
     |      All % interpolations are expanded in the return values, unless the
     |      optional argument `raw' is true. Values for interpolation keys are
     |      looked up in the same manner as the option.
     |      
     |      The section DEFAULT is special.
     |  
     |  items(self, section, raw=False, vars=None)
     |      Return a list of tuples with (name, value) for each option
     |      in the section.
     |      
     |      All % interpolations are expanded in the return values, based on the
     |      defaults passed into the constructor, unless the optional argument
     |      `raw' is true.  Additional substitutions may be provided using the
     |      `vars' argument, which must be a dictionary whose contents overrides
     |      any pre-existing defaults.
     |      
     |      The section DEFAULT is special.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from RawConfigParser:
     |  
     |  __init__(self, defaults=None, dict_type=<class 'collections.OrderedDict'>, allow_no_value=False)
     |  
     |  add_section(self, section)
     |      Create a new section in the configuration.
     |      
     |      Raise DuplicateSectionError if a section by the specified name
     |      already exists. Raise ValueError if name is DEFAULT or any of it's
     |      case-insensitive variants.
     |  
     |  defaults(self)
     |  
     |  getboolean(self, section, option)
     |  
     |  getfloat(self, section, option)
     |  
     |  getint(self, section, option)
     |  
     |  has_option(self, section, option)
     |      Check for the existence of a given option in a given section.
     |  
     |  has_section(self, section)
     |      Indicate whether the named section is present in the configuration.
     |      
     |      The DEFAULT section is not acknowledged.
     |  
     |  options(self, section)
     |      Return a list of option names for the given section name.
     |  
     |  optionxform(self, optionstr)
     |  
     |  read(self, filenames)
     |      Read and parse a filename or a list of filenames.
     |      
     |      Files that cannot be opened are silently ignored; this is
     |      designed so that you can specify a list of potential
     |      configuration file locations (e.g. current directory, user's
     |      home directory, systemwide directory), and all existing
     |      configuration files in the list will be read.  A single
     |      filename may also be given.
     |      
     |      Return list of successfully read files.
     |  
     |  readfp(self, fp, filename=None)
     |      Like read() but the argument must be a file-like object.
     |      
     |      The `fp' argument must have a `readline' method.  Optional
     |      second argument is the `filename', which if not given, is
     |      taken from fp.name.  If fp has no `name' attribute, `<???>' is
     |      used.
     |  
     |  remove_option(self, section, option)
     |      Remove an option.
     |  
     |  remove_section(self, section)
     |      Remove a file section.
     |  
     |  sections(self)
     |      Return a list of section names, excluding [DEFAULT]
     |  
     |  set(self, section, option, value=None)
     |      Set an option.
     |  
     |  write(self, fp)
     |      Write an .ini-format representation of the configuration state.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from RawConfigParser:
     |  
     |  OPTCRE = <_sre.SRE_Pattern object>
     |  
     |  OPTCRE_NV = <_sre.SRE_Pattern object>
     |  
     |  SECTCRE = <_sre.SRE_Pattern object>
    
    class DuplicateSectionError(Error)
     |  Raised when a section is multiply-created.
     |  
     |  Method resolution order:
     |      DuplicateSectionError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, section)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class InterpolationDepthError(InterpolationError)
     |  Raised when substitutions are nested too deeply.
     |  
     |  Method resolution order:
     |      InterpolationDepthError
     |      InterpolationError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, option, section, rawval)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class InterpolationError(Error)
     |  Base class for interpolation-related exceptions.
     |  
     |  Method resolution order:
     |      InterpolationError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, option, section, msg)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class InterpolationSyntaxError(InterpolationError)
     |  Raised when the source text into which substitutions are made
     |  does not conform to the required syntax.
     |  
     |  Method resolution order:
     |      InterpolationSyntaxError
     |      InterpolationError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods inherited from InterpolationError:
     |  
     |  __init__(self, option, section, msg)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class MissingSectionHeaderError(ParsingError)
     |  Raised when a key-value pair is found before any section header.
     |  
     |  Method resolution order:
     |      MissingSectionHeaderError
     |      ParsingError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, filename, lineno, line)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from ParsingError:
     |  
     |  append(self, lineno, line)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class NoOptionError(Error)
     |  A requested option was not found.
     |  
     |  Method resolution order:
     |      NoOptionError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, option, section)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class NoSectionError(Error)
     |  Raised when no section matches a requested option.
     |  
     |  Method resolution order:
     |      NoSectionError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, section)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class ParsingError(Error)
     |  Raised when a configuration file does not follow legal syntax.
     |  
     |  Method resolution order:
     |      ParsingError
     |      Error
     |      exceptions.Exception
     |      exceptions.BaseException
     |      __builtin__.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, filename)
     |  
     |  append(self, lineno, line)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from Error:
     |  
     |  __repr__(self)
     |  
     |  __str__ = __repr__(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from Error:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  message
     |      Getter for 'message'; needed only to override deprecation in
     |      BaseException.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from exceptions.Exception:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from exceptions.BaseException:
     |  
     |  __delattr__(...)
     |      x.__delattr__('name') <==> del x.name
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __getslice__(...)
     |      x.__getslice__(i, j) <==> x[i:j]
     |      
     |      Use of negative indices is not supported.
     |  
     |  __reduce__(...)
     |  
     |  __setattr__(...)
     |      x.__setattr__('name', value) <==> x.name = value
     |  
     |  __setstate__(...)
     |  
     |  __unicode__(...)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from exceptions.BaseException:
     |  
     |  __dict__
     |  
     |  args
    
    class RawConfigParser
     |  Methods defined here:
     |  
     |  __init__(self, defaults=None, dict_type=<class 'collections.OrderedDict'>, allow_no_value=False)
     |  
     |  add_section(self, section)
     |      Create a new section in the configuration.
     |      
     |      Raise DuplicateSectionError if a section by the specified name
     |      already exists. Raise ValueError if name is DEFAULT or any of it's
     |      case-insensitive variants.
     |  
     |  defaults(self)
     |  
     |  get(self, section, option)
     |  
     |  getboolean(self, section, option)
     |  
     |  getfloat(self, section, option)
     |  
     |  getint(self, section, option)
     |  
     |  has_option(self, section, option)
     |      Check for the existence of a given option in a given section.
     |  
     |  has_section(self, section)
     |      Indicate whether the named section is present in the configuration.
     |      
     |      The DEFAULT section is not acknowledged.
     |  
     |  items(self, section)
     |  
     |  options(self, section)
     |      Return a list of option names for the given section name.
     |  
     |  optionxform(self, optionstr)
     |  
     |  read(self, filenames)
     |      Read and parse a filename or a list of filenames.
     |      
     |      Files that cannot be opened are silently ignored; this is
     |      designed so that you can specify a list of potential
     |      configuration file locations (e.g. current directory, user's
     |      home directory, systemwide directory), and all existing
     |      configuration files in the list will be read.  A single
     |      filename may also be given.
     |      
     |      Return list of successfully read files.
     |  
     |  readfp(self, fp, filename=None)
     |      Like read() but the argument must be a file-like object.
     |      
     |      The `fp' argument must have a `readline' method.  Optional
     |      second argument is the `filename', which if not given, is
     |      taken from fp.name.  If fp has no `name' attribute, `<???>' is
     |      used.
     |  
     |  remove_option(self, section, option)
     |      Remove an option.
     |  
     |  remove_section(self, section)
     |      Remove a file section.
     |  
     |  sections(self)
     |      Return a list of section names, excluding [DEFAULT]
     |  
     |  set(self, section, option, value=None)
     |      Set an option.
     |  
     |  write(self, fp)
     |      Write an .ini-format representation of the configuration state.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  OPTCRE = <_sre.SRE_Pattern object>
     |  
     |  OPTCRE_NV = <_sre.SRE_Pattern object>
     |  
     |  SECTCRE = <_sre.SRE_Pattern object>
    
    class SafeConfigParser(ConfigParser)
     |  Method resolution order:
     |      SafeConfigParser
     |      ConfigParser
     |      RawConfigParser
     |  
     |  Methods defined here:
     |  
     |  set(self, section, option, value=None)
     |      Set an option.  Extend ConfigParser.set: check for string values.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from ConfigParser:
     |  
     |  get(self, section, option, raw=False, vars=None)
     |      Get an option value for a given section.
     |      
     |      If `vars' is provided, it must be a dictionary. The option is looked up
     |      in `vars' (if provided), `section', and in `defaults' in that order.
     |      
     |      All % interpolations are expanded in the return values, unless the
     |      optional argument `raw' is true. Values for interpolation keys are
     |      looked up in the same manner as the option.
     |      
     |      The section DEFAULT is special.
     |  
     |  items(self, section, raw=False, vars=None)
     |      Return a list of tuples with (name, value) for each option
     |      in the section.
     |      
     |      All % interpolations are expanded in the return values, based on the
     |      defaults passed into the constructor, unless the optional argument
     |      `raw' is true.  Additional substitutions may be provided using the
     |      `vars' argument, which must be a dictionary whose contents overrides
     |      any pre-existing defaults.
     |      
     |      The section DEFAULT is special.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from RawConfigParser:
     |  
     |  __init__(self, defaults=None, dict_type=<class 'collections.OrderedDict'>, allow_no_value=False)
     |  
     |  add_section(self, section)
     |      Create a new section in the configuration.
     |      
     |      Raise DuplicateSectionError if a section by the specified name
     |      already exists. Raise ValueError if name is DEFAULT or any of it's
     |      case-insensitive variants.
     |  
     |  defaults(self)
     |  
     |  getboolean(self, section, option)
     |  
     |  getfloat(self, section, option)
     |  
     |  getint(self, section, option)
     |  
     |  has_option(self, section, option)
     |      Check for the existence of a given option in a given section.
     |  
     |  has_section(self, section)
     |      Indicate whether the named section is present in the configuration.
     |      
     |      The DEFAULT section is not acknowledged.
     |  
     |  options(self, section)
     |      Return a list of option names for the given section name.
     |  
     |  optionxform(self, optionstr)
     |  
     |  read(self, filenames)
     |      Read and parse a filename or a list of filenames.
     |      
     |      Files that cannot be opened are silently ignored; this is
     |      designed so that you can specify a list of potential
     |      configuration file locations (e.g. current directory, user's
     |      home directory, systemwide directory), and all existing
     |      configuration files in the list will be read.  A single
     |      filename may also be given.
     |      
     |      Return list of successfully read files.
     |  
     |  readfp(self, fp, filename=None)
     |      Like read() but the argument must be a file-like object.
     |      
     |      The `fp' argument must have a `readline' method.  Optional
     |      second argument is the `filename', which if not given, is
     |      taken from fp.name.  If fp has no `name' attribute, `<???>' is
     |      used.
     |  
     |  remove_option(self, section, option)
     |      Remove an option.
     |  
     |  remove_section(self, section)
     |      Remove a file section.
     |  
     |  sections(self)
     |      Return a list of section names, excluding [DEFAULT]
     |  
     |  write(self, fp)
     |      Write an .ini-format representation of the configuration state.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from RawConfigParser:
     |  
     |  OPTCRE = <_sre.SRE_Pattern object>
     |  
     |  OPTCRE_NV = <_sre.SRE_Pattern object>
     |  
     |  SECTCRE = <_sre.SRE_Pattern object>

DATA
    DEFAULTSECT = 'DEFAULT'
    MAX_INTERPOLATION_DEPTH = 10
    __all__ = ['NoSectionError', 'DuplicateSectionError', 'NoOptionError',...


<type 'NoneType'>

Process finished with exit code 0
复制代码

 

     OK,下来我们来看下该模块的具体应用,我们先来完善config.ini配置文件的信息,见该配置文件里面的

内容:

[mysql_info]
hostname=localhost
port=3306
username=root
password=server

 

见对该配置文件操作的代码:

复制代码
#!/usr/bin/env python 
#-*- coding:utf-8 -*

import ConfigParser
import  os

config=ConfigParser.ConfigParser()
#读取配置文件的内容
config.read(os.path.join(os.path.dirname(__file__),'config','config.ini'))
#获取配置文件的所有节点
print config.sections()
#获取mysql_info节点下的所有内容
ret=config.options('mysql_info')
for item in ret:
    print item
print u'检查节点是否存在:',config.has_option('mysql_info','hostname')
print u'读取节点下的文件内容:',config.get('mysql_info','hostname')
#检查在mysql_info节点中是否存在db节点,如果存在,就删除,如果不存在,就添加
if config.has_option('mysql_info','db'):
    config.set('mysql_info','db','wuya')
    config.write(open(os.path.join(os.path.dirname(__file__),'config','config.ini'),'w'))
else:
    config.remove_option('mysql_info', 'db')
复制代码

 

OK,我们我们写一个简单的函数,来连接mysql的数据库服务,数据库的信息存储在配置信息文件中,见实现的代码:

复制代码
#!/usr/bin/env python 
#-*- coding:utf-8 -*

import ConfigParser
import  os
import  MySQLdb

def getConfig():
    mysqlInfo=[]
    config=ConfigParser.ConfigParser()
    config.read(os.path.join(os.path.dirname(__file__),'config','config.ini'))
    hostname=config.get(config.sections()[0],'hostname')
    port=config.get(config.sections()[0],'port')
    username=config.get(config.sections()[0],'username')
    password=config.get(config.sections()[0],'password')
    mysqlInfo.append(hostname)
    mysqlInfo.append(port)
    mysqlInfo.append(username)
    mysqlInfo.append(password)
    return mysqlInfo

try:
    conn = MySQLdb.connect(host=getConfig()[0],port=int(getConfig()[1]), user=getConfig()[2], passwd=getConfig()[3])
    print u'连接数据库成功'
except:
    print u'连接mysql数据库失败'
复制代码
复制代码
#!/usr/bin/env python 
#-*- coding:utf-8 -*

import ConfigParser
import  os
import  MySQLdb

def getConfig():
    mysqlInfo=[]
    config=ConfigParser.ConfigParser()
    config.read(os.path.join(os.path.dirname(__file__),'config','config.ini'))
    hostname=config.get(config.sections()[0],'hostname')
    port=config.get(config.sections()[0],'port')
    username=config.get(config.sections()[0],'username')
    password=config.get(config.sections()[0],'password')
    mysqlInfo.append(hostname)
    mysqlInfo.append(port)
    mysqlInfo.append(username)
    mysqlInfo.append(password)
    return mysqlInfo

try:
    conn = MySQLdb.connect(host=getConfig()[0],port=int(getConfig()[1]), user=getConfig()[2], passwd=getConfig()[3])
    print u'连接数据库成功'
except:
    print u'连接mysql数据库失败'
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值