Загрузка данных из внешнего файла (Loading data from external file)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Этот рецепт только для несколько более продвинутых пользователей (тех, кто не боится кода Python).

Предположим, вы хотите загрузить некоторые игровые данные из внешнего файла (думаю: редактор уровней, требования к миссии и т.д.). Как найти внешний файл?

Убедись, что разместили файл в папку игры или папку, вложенную в папку с игрой. Предположим, у нас есть файл missions.txt, который находится в .../game/resources/missions.txt.

Как это *не* делать (How *not* to do it )[править | править код]

Нижеследующий код не работает, файл не будет найден:

    f = open("resources/missions.txt", "r")

Вы также не хотите указать полный путь как часть "open", так как он, скорее всего, не будет работать ни на какой другой системе, кроме вашей.

Для открытия файла и выполнения в нём перебора строк вы должны преобразовать путь, используя, между тем, renpy.load.transfer в вышеуказанном коде.

Пример открытия файла missions.txt, расположенного в .../game/resources (Example opening a file missions.txt located in .../game/resources)[править | править код]

    python:
        # открыть файл
        f = open(renpy.loader.transfn("resources/missions.txt"),"r")
        # выполнить перебор его строк и сделать с ними что-нибудь 
        for line in f:
            do_something(line)
        # когда закончите, закройте файл
        f.close()

Пример разбора missions.xml (Example parsing missions.xml)[править | править код]

    python:
        # импортируйте связанные с xml библиотеки 
        import xml.etree.ElementTree as elementtree
        # проведите синтаксический анализ файла missions.xml 
        tree = elementtree.parse(renpy.loader.transfn("resources/missions.xml"))

Источник[править | править код]

Статья "Loading data from external file" на английском языке


На главную страницу Книга рецептов Энциклопедии Ren'Py Книга рецептов Ren'Py Вернуться к началу статьи