我需要编写一个读取文件的函数,并在一个单元格中放入游戏的每个级别列表。 每个单元格包含级别的行作为字符串,每行都是单元格的元素。 最后一个单元格应该没有在级别之前出现的数字或单词,并且没有“\ n”或空单元格。 我实现了这个功能,但是对于看起来像这样的级别它不能很好地工作。 有些人有任何想法吗?
来自文件的级别
; 1
####
# .#
# ###
#*@ #
# $ #
# ###
####
作为列表中的单元格:
['####', '# .#', '# ###', '#*@ #', '# $ #', '# ###', '####']
我遇到问题的关卡示例:
; 154 'Take the long way home.'
############################
# #
# ######################## #
# # # #
# # #################### # #
# # # # # #
# # # ################ # # #
# # # # # # # #
# # # # ############ # # # #
# # # # # # # # #
# # # # # ############ # # #
# # # # # # # #
# # # # ################ # #
# # # # # #
##$# # #################### #
#. @ # #
#############################
看起来像这样:
["54 'Take the long way home.'", '', ' ############################', ' # #', ' # ######################## #', ' # # # #', ' # # #################### # #', ' # # # # # #', ' # # # ################ # # #', ' # # # # # # # #', ' # # # # ############ # # # #', ' # # # # # # # # #', ' # # # # # ############ # # #', ' # # # # # # # #', ' # # # # ################ # #', ' # # # # # #', '##$# # #################### #', '#. @ # #', '#############################']
我的代码:
def loader(filename):
tmp=[]
levels=[]
f=open(filename, "r")
f=f.read().split(';')
for line in f:
tmp.append(line[2:].strip())
tmp.remove("")
for i in tmp:
i=i.split("\n")
levels.append(i)
print levels
答案 0 :(得分:0)
有点难以完全遵循你想要完成的事情,但我认为这个功能会给你你想要的东西。
def loader(filename):
f = open(filename, 'r')
lines = f.read().split('\n')
header = lines[0] # don't know if you need this
level = lines[2:]
f.close()
return level
编辑: 哦,我没有意识到每个文件有多个级别。
那么:
def loader(filename):
f = open(filename, 'r')
levels = f.read().split(';')[1:]
return [level.strip().split('\n')[2:] for level in levels]
答案 1 :(得分:0)
def loader(filename):
tmp=[]
levels=[]
f=open(filename, "r")
f=f.read().split(';')
for i in f[1:]:
i=i.split("\n")
levels.append(i[2:-1])
print levels
对我来说很好:
testinput.txt:
; 1
####
# .#
# ###
#*@ #
# $ #
# ###
####
; 154 'Take the long way home.'
############################
# #
# ######################## #
# # # #
# # #################### # #
# # # # # #
# # # ################ # # #
# # # # # # # #
# # # # ############ # # # #
# # # # # # # # #
# # # # # ############ # # #
# # # # # # # #
# # # # ################ # #
# # # # # #
##$# # #################### #
#. @ # #
#############################
输出:
[['####', '# .#', '# ###', '#*@ #', '# $ #', '# ###', '####'], [' ############################', ' # #', ' # ######################## #', ' # # # #', ' # # #################### # #', ' # # # # # #', ' # # # ################ # # #', ' # # # # # # # #', ' # # # # ############ # # # #', ' # # # # # # # # #', ' # # # # # ############ # # #', ' # # # # # # # #', ' # # # # ################ # #', ' # # # # # #', '##$# # #################### #', '#. @ # #', '#############################']]