Я пишу игру на Python, которая использует функцию сохранения файла. Я написал функцию, которая сохраняет все необходимые переменные, строки, списки и словари в файл. В общем, есть 11 вещей для импорта, когда я вызываю функцию под названием «load()», которую я написал.Импорт списка из файла, в список
Здесь нагрузка():
def load():
importedData = open("saveGame.dat", "r+").readlines()
for x in range(0,len(importedData)):
position = importedData[0]
health = importedData[1]
strength = importedData[2]
exp = importedData[3]
playerLevel = importedData[4]
# playerSpells = []
# spellsFromSaveFile = importedData[5]
# This doesn't work!
playerClass = importedData[6]
seenDialogues = importedData[7]
rank = importedData[8]
playerItems = importedData[9]
itemDesc = importedData[10]
specialItems = importedData[11]
return position, health, strength, exp, playerLevel, playerSpells, playerClass, seenDialogues, rank, playerItems, itemDesc, specialItems
А вот что сохранить файл выглядит следующим образом:
2
24
4
96
1
['Blink']
None
2
Frajan
[]
{}
{}
Большинство словарей и списков будет пустым, так как они используется для предметов, которые были собраны позже в игре (этот файл сохранения был создан на ранней стадии игры).
Хотя мне нужно импортировать несколько списков и словарей, я сосредоточусь на одном из них. Список playerSpells
сохраняется как ['Blink']
в файле сохранения «saveGame.dat».
Вот что я пробовал:
Я импортировал список в список под названием playerSpells
:
playerSpells = []
playerSpells = importedData[5]
print(playerSpells)
print(playerSpells)
Линия возвращается к этому:
['Blink']
Это похоже, что он сработал, поэтому я добавил следующий цикл:
playerSpells = []
playerSpells = importedData[5]
for x in range(0,len(playerSpells)):
print(playerSpells[x])
Но получилось так:
[
'
B
l
i
n
k
'
]
Итак, мой вопрос: Как будет идти об импорте списка, из файла, в другой список - но добавляя слова в списке, а не отдельные символы ?
Любая помощь приветствуется.
Вам было бы лучше использовать, например, ['pickle'] (https://docs.python.org/2/library/pickle.html), чтобы перенести фактические объекты, а не записывать их как текстовые представления. Единственным недостатком является то, что файл не читается человеком. – jonrsharpe
@jonrsharpe Я читал о 'pickle' и думал об использовании этого, но на данный момент я исправляю файлы savefiles, и они должны быть удобочитаемыми, чтобы я мог настраивать вещи! Если я их отсортирую, я могу использовать 'pickle'. – String
Вы также можете использовать JSON. Работает как рассол и читается человеком. И, конечно, читается на любом другом языке. –