138 lines
4.5 KiB
Markdown
138 lines
4.5 KiB
Markdown
## Библиотека *file*
|
||
|
||
Библиотека функций для работы с файлами
|
||
|
||
```python
|
||
file.resolve(путь: str) -> str
|
||
```
|
||
|
||
Функция приводит запись `точка_входа:путь` (например `user:worlds/house1`) к обычному пути. (например `C://Users/user/.voxeng/worlds/house1`)
|
||
|
||
> [!NOTE]
|
||
> Функцию не нужно использовать в сочетании с другими функциями из библиотеки, так как они делают это автоматически
|
||
|
||
Возвращаемый путь не является каноническим и может быть как абсолютным, так и относительным.
|
||
|
||
```python
|
||
file.read(путь: str) -> str
|
||
```
|
||
|
||
Читает весь текстовый файл и возвращает в виде строки
|
||
|
||
```python
|
||
file.read_bytes(путь: str) -> array of integers
|
||
```
|
||
|
||
Читает файл в массив байт.
|
||
|
||
```python
|
||
file.write(путь: str, текст: str) -> nil
|
||
```
|
||
|
||
Записывает текст в файл (с перезаписью)
|
||
|
||
```python
|
||
file.write_bytes(путь: str, data: array of integers)
|
||
```
|
||
|
||
Записывает массив байт в файл (с перезаписью)
|
||
|
||
```python
|
||
file.length(путь: str) -> int
|
||
```
|
||
|
||
Возвращает размер файла в байтах, либо -1, если файл не найден
|
||
|
||
```python
|
||
file.exists(путь: str) -> bool
|
||
```
|
||
|
||
Проверяет, существует ли по данному пути файл или директория
|
||
|
||
```python
|
||
file.isfile(путь: str) -> bool
|
||
```
|
||
|
||
Проверяет, существует ли по данному пути файл
|
||
|
||
```python
|
||
file.isdir(путь: str) -> bool
|
||
```
|
||
|
||
Проверяет, существует ли по данному пути директория
|
||
|
||
```python
|
||
file.mkdir(путь: str) -> bool
|
||
```
|
||
|
||
Создает директорию. Возвращает true если была создана новая директория
|
||
|
||
```python
|
||
file.mkdirs(путь: str) -> bool
|
||
```
|
||
|
||
Создает всю цепочку директорий. Возвращает true если были созданы директории.
|
||
|
||
```python
|
||
file.find(путь: str) -> str
|
||
```
|
||
|
||
Ищет файл от последнего пака до res. Путь указывается без префикса. Возвращает путь с нужным префиксом. Если файл не найден, возвращает nil.
|
||
|
||
```python
|
||
file.remove(путь: str) -> bool
|
||
```
|
||
|
||
Удаляет файл. Возращает **true** если файл существовал. Бросает исключение при нарушении доступа.
|
||
|
||
```python
|
||
file.remove_tree(путь: str) -> int
|
||
```
|
||
|
||
Рекурсивно удаляет файлы. Возвращает число удаленных файлов.
|
||
|
||
## Библиотека json
|
||
|
||
Библиотека содержит функции для сериализации и десериализации таблиц:
|
||
|
||
```python
|
||
json.tostring(object: table, human_readable: bool=false) -> str
|
||
```
|
||
|
||
Сериализует объект в JSON строку. При значении второго параметра **true** будет использовано многострочное форматирование, удобное для чтения человеком, а не компактное, использующееся по-умолчанию.
|
||
|
||
```python
|
||
json.parse(code: str) -> table
|
||
```
|
||
|
||
Парсит JSON строку в таблицу.
|
||
|
||
## Библиотека toml
|
||
|
||
Библиотека содержит функции для сериализации и десериализации таблиц:
|
||
|
||
```python
|
||
toml.tostring(object: table) -> str
|
||
```
|
||
|
||
Сериализует объект в TOML строку.
|
||
|
||
```python
|
||
toml.parse(code: str) -> table
|
||
```
|
||
|
||
Парсит TOML строку в таблицу.
|
||
|
||
## Сохранение данных в мире
|
||
|
||
При сохранении данных пака в мире следует использовать функцию
|
||
```python
|
||
pack.data_file(packid: str, filename: str) -> str
|
||
```
|
||
|
||
Функция возвращает путь к файлу данных по типу: `world:data/packid/filename`
|
||
|
||
и создает недостающие директории в пути.
|
||
|
||
При использовании путей не соответствующим `data/{packid}/...` возможна потеря данных при перезаписи мира.
|