关于代码的一点点;我想要做的是将一个部分变成一个字典,这样我就可以轻松地管理它。当然,因为 ConfigParser 将所有内容都作为字符串返回(大多数情况下),我必须将其更改为所需的类型。这就是我的问题开始的地方。
代码
import ConfigParser, pygame
parser = ConfigParser.SafeConfigParser()
class loadfile(object):
def __init__(self, filename):
self.filename = filename
def load(self):
parser.read(self.filename)
for section_name in parser.sections():
vars()[section_name] = {}
for name, value in parser.items(section_name):
if value.isdigit():
value = int(value)
elif value == "None":
value = None
elif value == "True" or value == "False":
value = parser.getboolean( section_name, name )
else:
value = vars()[ parser.get( section_name, name ) ]
vars()[section_name].update( { name : value } )
print vars()[section_name]
def save(self):
pass
loadfile("config.ini").load()
配置文件
[Display]
Width : 800
Height : 600
Depth : 32
Caption : 45
Flags : pygame.RESIZABLE
Icon : None
Mouse : True
FPS : 30
; Key configuration;
[Keys]
Left : pygame/K_LEFT
Right : pygame.K_RIGHT
Jump : pygame.K_UP
Duck : pygame.K_DOWN
Sprint : pygame.K_RSHIFT
Attack_1 : pygame.K_a
Attack_2 : pygame.K_s
Attack_3 : pygame.K_d
gameMenu : pygame.K_ESCAPE
Dialogue : pygame.K_RETURN
错误
Traceback (most recent call last):
File "C:\Users\***\Desktop\config2.py", line 35, in <module>
loadfile("config.ini").load()
File "C:\Users\***\Desktop\config2.py", line 27, in load
value = vars()[ parser.get( section_name, name ) ]
KeyError: 'pygame.RESIZABLE'
在我将代码放入它自己的类之前发生了同样的错误,如果我使用过import pygame
,但是当我使用它时它神秘地消失了from pygame import *