【发布时间】:2016-01-31 13:37:15
【问题描述】:
我正在使用 pygame 创建我的第一个“游戏”,并想添加一个加载文件选项。我的代码是:
file = input('What save file should be opened? ')
file = file + '.txt'
file = open(file, 'r')
tilemap = file.read()
这很好,直到我到达这一行
SCREEN.blit(textures[tilemap[row][column]], (column*TILESIZE, row*TILESIZE))
我在哪里得到一个 KeyError:'['
这是因为我打开的文件是一个数字列表,但它作为字符串打开 - 程序将“[”作为字符串的一部分读取。我试过使用:
tilemap = file.readlines()
但这给出了一个列表,里面有一个字符串。我在互联网上看到的所有内容都是将字符串或整数放入列表中,而不仅仅是打开列表。如何打开列表??
编辑:
文件(.txt)是列表的列表,如:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
【问题讨论】:
-
将字符串转换为数字...
-
我猜你的存档只是一个整数列表。那是对的吗?
SCREEN.blit(textures[tilemap[row][column]], ...需要一个数字列表列表,因此您需要将文件数据转换为该表单。为了正确地做到这一点,我们需要知道你的保存文件的确切格式,所以如果你可以在你的问题。 -
您能指定文件的确切格式吗?它是 Python 列表的字符串表示,例如“[1,2,3]”作为一行?
-
文件为列表列表,如:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
-
json.load?ast.literal_eval?
标签: python list file python-3.x pygame