Доступ к файлам

Эти функции Python позволяют получить доступ к файлам ассетов, которые могут находиться в каталоге игры, в RPA-архивах или в виде ассетов Android.

renpy.file(fn, encoding=None)

Псевдоним для renpy.open_file() для совместимости со старыми версиями Ren'Py.

renpy.list_files(common=False)

Перечисляет файлы в каталоге игры и в архивных файлах. Возвращает список файлов, где в качестве разделителя каталогов используется /.

common

Если true, файлы из общего каталога (common) включаются в список.

renpy.loadable(filename, directory=None, tl=True)

Возвращает True, если данный файл можно загрузить, то есть он может быть загружен с диска или из архива. В противном случае возвращает False.

directory

Если не None, каталог для поиска, если файл не найден в каталоге игры. Этот путь будет добавлен в начало имени файла, и поиск будет повторён.

tl

Если True, также будет учитываться подкаталог перевода.

renpy.open_file(fn, encoding=None, directory=None)

Возвращает файлоподобный объект только для чтения, который предоставляет доступ к файлу с именем fn. Доступ к файлу осуществляется с помощью стандартного метода поиска Ren'Py, и файл может находиться в каталоге игры, в архиве RPA или как ресурс Android.

Объект поддерживает широкий набор полей и методов, аналогичных стандартному файловому объекту Python, открытому в двоичном режиме. (По сути, все методы, которые имеют смысл для файла, открытого только для чтения.)

encoding

Если указан, файл открывается в текстовом режиме с заданной кодировкой. Если False, файл открывается в двоичном режиме. Если None (по умолчанию), кодировка берётся из config.open_file_encoding. В большинстве случаев None открывает файл в двоичном режиме.

directory

Если не None, каталог для поиска, если файл не найден в каталоге игры. Этот путь будет добавлен в начало имени файла, и поиск будет повторён.

Возвращает объект io.BufferedReader, если encoding равен None, и объект io.TextIOWrapper, если encoding не равен None.

Редко используемые

Эти функции используются реже.

renpy.exists(filename)

Возвращает true, если данный файл можно найти в путях поиска (searchpath). Работает, только если физический файл существует на диске. Не найдёт файл, если он находится внутри архива.

Вам почти наверняка следует использовать renpy.loadable() вместо этой функции.

renpy.fsdecode(s)

Преобразует s из кодировки файловой системы в unicode.

renpy.fsencode(s, force=False)

Преобразует s из unicode в кодировку файловой системы.

renpy.image_size(im)

Принимает манипулятор изображений, загружает его и возвращает кортеж (width, height), содержащий его размер.

Эта функция считывает изображение с диска и распаковывает его, не используя кэш изображений. Это может быть медленно.