Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pygame.Resizeable给定键错误_Python_Python 2.7_Pygame_Configparser - Fatal编程技术网

Python pygame.Resizeable给定键错误

Python pygame.Resizeable给定键错误,python,python-2.7,pygame,configparser,Python,Python 2.7,Pygame,Configparser,稍微了解一下代码;我想做的是把一个部分变成一个Dict,这样我就可以轻松地管理它。 当然,因为ConfigParser以字符串的形式返回所有内容(大多数情况下都是这样),所以我必须将其更改为所需的类型。这就是我的问题开始的地方 代码 config.ini 错误 回溯(最近一次呼叫最后一次): 文件“C:\Users\***\Desktop\config2.py”,第35行,在 loadfile(“config.ini”).load() 文件“C:\Users\***\Desktop\config

稍微了解一下代码;我想做的是把一个部分变成一个Dict,这样我就可以轻松地管理它。 当然,因为ConfigParser以字符串的形式返回所有内容(大多数情况下都是这样),所以我必须将其更改为所需的类型。这就是我的问题开始的地方

代码 config.ini 错误
回溯(最近一次呼叫最后一次):
文件“C:\Users\***\Desktop\config2.py”,第35行,在
loadfile(“config.ini”).load()
文件“C:\Users\***\Desktop\config2.py”,第27行,已加载
value=vars()[parser.get(section\u name,name)]
KeyError:“pygame.RESIZABLE”

同样的错误发生在我将代码放入自己的类之前,如果我使用了
import pygame
,但当我使用pygame import*中的
时,它神秘地消失了。下面是我为此编写的一些代码,它不使用
ConfigParser
,但应该可以工作。
(至少在您的情况下)

输出(从您的config.ini)

此外,如果您对ini文件使用以下类型的格式(格式可能不是正确的单词),则可能更易于使用

[Display]
Width=800
Height=600
Depth=32
Caption=45
Flags=pygame.RESIZABLE
Icon=None
Mouse=True
FPS=30
-----
[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
-----

这是可以执行的(在从'----'拆分并删除其中每一行的第一行。([keys],[display])

以下是我为此编写的一些代码,它不使用
ConfigParser
,但应该可以工作。
(至少在您的情况下)

输出(从您的config.ini)

此外,如果您对ini文件使用以下类型的格式(格式可能不是正确的单词),则可能更易于使用

[Display]
Width=800
Height=600
Depth=32
Caption=45
Flags=pygame.RESIZABLE
Icon=None
Mouse=True
FPS=30
-----
[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
-----

这是可以执行的(在从“----”拆分并删除其中每一行的第一行后。([keys],[display])

感谢您提供的代码。如果没有人解释我做错了什么(因为我使用ConfigParser做了很多事情,所以我想知道我是否做错了什么),我将选择您的答案为最佳。@DragoonHP我从未使用过
ConfigParser
,但您的config.ini似乎足够简单,只需使用BIFs(内置函数)即可处理,因此为此编写了代码:)是的,它很简单,但我也在用它在我的引擎中加载地图,所以我想知道我是否做错了什么。但也许最后,我会用你的代码加载设置;它非常简单和灵活。:-@DragoonHP如果代码有用,请接受,因为我需要声誉:):OI我要等到明天;如果没有人解释,我会选择你的答案。很糟糕,我不能给你一个好答案的名声。谢谢你的密码。如果没有人解释我做错了什么(因为我在很多事情上使用ConfigParser,所以我想知道我是否做错了什么),我会选择你的答案作为最佳答案。@DragoonHP我从未使用过
ConfigParser
,但你的config.ini似乎足够简单,只需使用BIFs(内置函数)即可处理,所以为它编写了代码:)是的,它很简单,但我也在用它在我的引擎中加载贴图,所以我想知道我是否做错了什么。但也许最后,我会用你的代码来加载设置;它非常简单和灵活。:-)@龙骑兵请接受,如果代码,如果它有帮助,因为我需要的声誉:):我要等到明天;如果没有人解释,我会选择你的答案。真糟糕,我不能因为你的回答而给你名声。
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'
class loadfile(object):

    def __init__(self, filename):
        self.filename = filename

    def load(self):
        x = open(self.filename).read()     # open as file and read
        d,k = x.split('; Key configuration;')   # split at Key configration
        d = d.splitlines()
        k = k.splitlines()
        ddict = {}
        for i in d:
                i = i.split(':')
                i = [z.strip() for z in i] # strip whitespace(s)
                if len(i) == 2: # a valid assignment line
                        ddict[i[0]] = i[1] # assignment of value
        #same for keys
        kdict = {}
        for i in k:
                i = i.split(':')
                i = [z.strip() for z in i]
                if len(i) == 2:
                        kdict[i[0]] = i[1]
        print '---Display---'
        for key in kdict:
            print '%10s:%19s' % (key,kdict[key]) # print display part
        print '---Keys---'
        for key in ddict:
            print '%10s:%19s' % (key,ddict[key]) # print key part
        self.kdict = kdict
        self.ddict = ddict
    def save(self):
        pass

x = loadfile("config.ini")
x.load()
---Display---
  Attack_1:         pygame.K_a
  Dialogue:    pygame.K_RETURN
     Right:     pygame.K_RIGHT
      Jump:        pygame.K_UP
  Attack_3:         pygame.K_d
  Attack_2:         pygame.K_s
      Duck:      pygame.K_DOWN
    Sprint:    pygame.K_RSHIFT
  gameMenu:    pygame.K_ESCAPE
      Left:      pygame/K_LEFT
---Keys---
   Caption:                 45
    Height:                600
     Width:                800
     Depth:                 32
     Flags:   pygame.RESIZABLE
       FPS:                 30
     Mouse:               True
      Icon:               None
[Display]
Width=800
Height=600
Depth=32
Caption=45
Flags=pygame.RESIZABLE
Icon=None
Mouse=True
FPS=30
-----
[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
-----