← Back to team overview

sikuli-driver team mailing list archive

[Question #403680]: Using ConfigParser with Sikuli error

 

New question #403680 on Sikuli:
https://answers.launchpad.net/sikuli/+question/403680

sorry for the repeat. I accidently marked the question as solved when it wasn't. 

this is the error I am getting

[error] script [ testingSki ] stopped with error in line 4
[error] AttributeError ( 'str' object has no attribute 'readline' )
[error] --- Traceback --- error source first line: module ( function ) statement 286: ConfigParser ( readfp ) File "C:\Users\ffi1\Downloads\sikuli\sikulix.jar\Lib\ConfigParser.py", line 430, in _read
[error] --- Traceback --- end --------------


this is my code 

import ConfigParser

config = ConfigParser.ConfigParser()
config.readfp('C:\\Users\\ffi1\\Desktop\\con.ini')
username1 = config.get('user1','username')
username2 = config.get('user2','username')


con.ini 

[user1]
username=Guido Van Rossum
ip = 192.168.0.1
machineName=Guido's Machine
system = Ubuntu

[user2]
username = Bob Marley
ip = 192.168.0.1
machineName= Bob's Machine
system = windows 7

this is the line 430 error


    def _read(self, fp, fpname):
        """Parse a sectioned setup file.

        The sections in setup file contains a title line at the top,
        indicated by a name in square brackets (`[]'), plus key/value
        options lines, indicated by `name: value' format lines.
        Continuations are represented by an embedded newline then
        leading whitespace.  Blank lines, lines beginning with a '#',
        and just about everything else are ignored.
        """
        cursect = None                            # None, or a dictionary
        optname = None
        lineno = 0
        e = None                                  # None, or an exception
        while True:
            line = fp.readline()
            if not line:
                break
            lineno = lineno + 1
            # comment or blank line?
            if line.strip() == '' or line[0] in '#;':
                continue
            if line.split(None, 1)[0].lower() == 'rem' and line[0] in "rR":
                # no leading whitespace
                continue
            # continuation line?
            if line[0].isspace() and cursect is not None and optname:
                value = line.strip()
                if value:
                    cursect[optname] = "%s\n%s" % (cursect[optname], value)
            # a section header or option header?
            else:
                # is it a section header?
                mo = self.SECTCRE.match(line)
                if mo:
                    sectname = mo.group('header')
                    if sectname in self._sections:
                        cursect = self._sections[sectname]
                    elif sectname == DEFAULTSECT:
                        cursect = self._defaults
                    else:
                        cursect = {'__name__': sectname}
                        self._sections[sectname] = cursect
                    # So sections can't start with a continuation line
                    optname = None
                # no section header in the file?
                elif cursect is None:
                    raise MissingSectionHeaderError(fpname, lineno, line)
                # an option line?
                else:
                    mo = self.OPTCRE.match(line)
                    if mo:
                        optname, vi, optval = mo.group('option', 'vi', 'value')
                        if vi in ('=', ':') and ';' in optval:
                            # ';' is a comment delimiter only if it follows
                            # a spacing character
                            pos = optval.find(';')
                            if pos != -1 and optval[pos-1].isspace():
                                optval = optval[:pos]
                        optval = optval.strip()
                        # allow empty values
                        if optval == '""':
                            optval = ''
                        optname = self.optionxform(optname.rstrip())
                        cursect[optname] = optval
                    else:
                        # a non-fatal parsing error occurred.  set up the
                        # exception but keep going. the exception will be
                        # raised at the end of the file and will contain a
                        # list of all bogus lines
                        if not e:
                            e = ParsingError(fpname)
                        e.append(lineno, repr(line))
        # if any parsing errors occurred, raise an exception
        if e:
            raise e

-- 
You received this question notification because your team Sikuli Drivers
is an answer contact for Sikuli.