gpt4 book ai didi

Python-ConfigParser-AttributeError : ConfigParser instance has no attribute '__getitem__'

转载 作者:太空狗 更新时间:2023-10-29 20:42:27 32 4
gpt4 key购买 nike

我正在创建每日报价服务器。我正在阅读 INI 文件中的选项,其文本如下:

[Server]
host =
port = 17

[Quotes]
file=quotes.txt

但是,当我使用 ConfigParser 时,它给我这个错误:

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__'

这是我的代码:

#!/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()

为什么会出现此错误,我该如何解决?

最佳答案

快速阅读后,您似乎正在尝试将数据当作字典来读取,此时您应该使用:config.get(section, data)

如:

...
config = ConfigParser()
config.read(filename)
...
configOptions.port = config.getint('Server', 'port')
configOptions.host = config.get('Server', 'host')
configOptions.quoteFile = config.get('Quotes', 'file')

要写入配置文件,您可以执行以下操作:

...
def setValue(parser, sect, index, value):
cfgfile = open(filename, 'w')
parser.set(sect, index, value)
parser.write(cfgfile)
cfgfile.close()

关于Python-ConfigParser-AttributeError : ConfigParser instance has no attribute '__getitem__' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407329/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com