오늘 서버의 견적을 만들고 있습니다. 내가 그 텍스트 INI 파일에서 옵션을 읽고있다은 다음과 같습니다 :Python - ConfigParser - AttributeError : ConfigParser 인스턴스에 '__getitem__'속성이 없습니다.
[Server]
host =
port = 17
[Quotes]
file=quotes.txt
그러나, 나는 ConfigParser를 사용하는 경우, 그것은 나에게이 오류 제공 :
#!/usr/bin/python
from socket import *
from ConfigParser import *
import sys
class serverConf:
port = 17
host = ""
quotefile = ""
def initConfig(filename):
config = ConfigParser()
config['Server'] = {'port': '17', 'host': ''}
config['Quotes'] = {'file': 'quotes.txt'}
with open(filename, 'w') as configfile:
config.write(configfile)
def parseConfig(filename):
configOptions = serverConf()
config = ConfigParser()
config.read(filename)
server = config['Server']
configOptions.port = int(server['port'])
configOptions.host = conifg['Server']['host']
configOptions.quoteFile = config['Quotes']['file']
print "[Info] Read configuration options"
return configOptions
def doInitMessage():
print "Quote Of The Day Server"
print "-----------------------"
print "Version 1.0 By Ian Duncan"
print ""
def Start():
filename = "qotdconf.ini"
configOptions = parseConfig(filename)
print "[Info] Will start server at: " + configOptions.host + ":" + configOptions.port
Start()
: 여기
Traceback (most recent call last):
File "server.py", line 59, in <module>
Start()
File "server.py", line 55, in Start
configOptions = parseConfig(filename)
File "server.py", line 33, in parseConfig
server = config['Server']
AttributeError: ConfigParser instance has no attribute '__getitem__'
내 코드입니다
왜이 오류가 발생하며이를 해결하려면 어떻게해야합니까? 빠른 후
대괄호가 작동하지 않습니다. 'get()'함수를 사용하십시오. 'configOptions.host = conifg.get ('서버', '호스트') ' http://docs.python.org/2/library/configparser.html#examples – M456
글쎄, 'config'를 사전처럼 사용하고 그렇지 않은 경우 ConfigParser 인스턴스입니다 ... – kindall
미래에 [ConfigParser 문서] (http://docs.python.org)를 참조하십시오. /2/library/configparser.html#configparser-objects). –