Я пишу игру на Python и дошел до того, что мне нужен способ сэкономить игрокам. Я думал о том, что script создает текстовый файл и записывает пару строк (для хранения переменных статистики и номера комнаты), когда игрок выходит из игры. Но мне также нужно проверить, выходит ли этот файл при запуске и, если это так, применить сохраненные значения к соответствующим переменным. Может ли кто-нибудь помочь?
Здесь два разных вопроса:
Первый вопрос проще назвать более универсальным. Здесь у вас есть несколько хороших вариантов: один использует класс Python ConfigParser
для Windows .ini
- как файлы конфигурации. В качестве альтернативы вы можете использовать pickle
, чтобы просто сбросить какую-то структуру данных конфигурации/настроек (может быть вложенным dict). Тогда есть встроенная привязка SQLite. Существуют и другие варианты - все зависит от уровня сложности, который вы хотите.
Вторая проблема более специфична для вашего приложения. Вы можете попробовать открыть файл конфигурации при запуске и, если он там, прочитать его содержимое. Позже вы можете периодически сохранять настройки/прогресс в нем. Советуйте: всегда сохраняйте полный набор настроек в постоянной структуре данных, даже если только часть настроек находится в файле конфигурации, когда вы его читаете (по какой-то причине), имеют значения по умолчанию для ваших настроек.
import os
if os.path.exists('yourplayerfile'):
with open('yourplayerfile') as f:
# work with f
with open('yourplayerfile','a') as f:
# update f
Это схема, с которой вы должны работать.
a
создаст файл, если он не существует.
Я предлагаю вам сохранить в sqlite или некоторые подобные вещи... но я не могу понять, где ваш вопрос? сохранить файл или прочитать файл?
try:
f=open('/tmp/workfile', 'w')
# i find file
except:
#there is no file
<open file '/tmp/workfile', mode 'w' at 80a0960>
... read docs http://docs.python.org/release/2.5.2/tut/node9.html
with open(file) as f
вместо with open(file) as f
. Это намного чище.