我正在为一个缺少它的游戏编写一个锦标赛创建者,仅供个人使用。这是一个很好的学校锻炼。。。然而,我在完成程序时偶然发现了一个问题。你知道吗
因此,在确定了锦标赛的参与者之后,我会问用户(我自己,最多是我的堂兄,如果他过来的话)是否要保存当前的参与者列表。如果是,则包含参与者的列表将写入文件:
fileWrite = open('Previous Participants', 'w')
fileWrite.write(str(participants2))
fileWrite.close()
但是,这会将列表转换为字符串,因此如果我想在下次运行程序时读取它。。。我有一根绳子。不是一个名单,我需要为比赛的创造者本身的名单(随机战斗等)。你知道吗
所以。。。如何将此字符串作为列表返回?问题是,我可以使用split,我想,但是我相信参与者的名字加空格会是个问题。你知道吗
当前文件包含上次的字符串:
['Cell', 'Lord Slug', 'Time Patroller', 'Gotenks', 'Omega Shenron', 'Nail', 'Time Breaker Bardock', 'Piccolo', 'Frieza', 'Mr. Satan', 'Beerus', 'Nappa', 'Raspberry', 'Goten', 'Vegito', 'Goku']
像“鼻涕虫勋爵”这样的参与者如果我这样做了会引起问题:
ownCharacters = input('Do you wish to use the same participants as last time? ')
if ownCharacters == 'yes' or ownCharacters == 'Yes':
try:
fileRead = open('Previous Participants', 'r')
participants2 = fileRead.read()
participants2.split
except FileNotFoundError:
participants2 = participants2
不会吧? 顺便说一句,当程序到达这一点时,参与者2已经用随机名称填充,因此如果文件不存在,它应该继续使用随机名称。你知道吗
不要把列表写成字符串。有很多方法可以做到这一点。最常见的方法是将每个用户写入文件的不同行,或者使用csv(或其他类型的分隔符)。你知道吗
先通过join写入列表:
file.write(','.join(list))
阅读并使用
split
获取列表:data = file.read() #read data list = data.split(',')#split data
对于多个列表,可以使用不同级别的分隔
一个更好的方法是将名称写入文件,每行一个:
然后可以通过
readlines
检索名称列表:但是,将数据序列化为文件的正确方法是使用经过测试的库,如^{} 或^{} :
然后您可以通过以下方式检索列表:
相关问题 更多 >
编程相关推荐