LINUX.ORG.RU

Каталог для кеша

 


1

1

Допустим, я пишу приложение на Python и ему требуется кешировать некоторые данные между своими вызовами. Это именно кеш, а не настройки. В смысле, что их можно безболезненно удалить, просто следующий запуск приложения будет дольше.

Как мне определить, в какую папку стоит сохранять эти данные (это несколько файлов)?

Под Linux понятное дело можно сохранить куда-нибудь в ~/.cache/my-app-name, но хотелось бы более универсального решения, чтобы оно работало под всеми ОС.

Умеет ли Python сам по себе или с каким-нибудь модулем такое? Или только вручную определять ОС и генерировать путь к каталогу для кеша?

tempfile.mktemp не подходит, потому что он на многих Linux выдаст путь в /tmp, который находится на ram-диске и его содержимое теряется при перезагрузке. Я ничего не имею против пользователей, которые хотят так поступить с кешем, но всё это должно потребовать от них каких-то действий (например, тот же каталог ~/.cache придётся сделать ссылкой на каталог в /tmp, это не стандартное поведение ОС).

★★★★★

Последнее исправление: KivApple (всего исправлений: 1)

~/.cache/my-app-name, но хотелось бы более универсального решения, чтобы оно работало под всеми ОС.

и в чем проблема то? В виндах только путь другой: ~/AppData/....

Deleted
()
Ответ на: комментарий от Deleted

Уже не верно - если всё делать правильно, то в виндах надо искать путь в переменной окружения APPDATA. А то расположение каталога отличается в разных версиях винды.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Отлично! Это то, что мне нужно. Большое спасибо.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Ну в целом ты уже понял, что од конкретную ОС просто разные каталоги? Чего ты еще хочешь - не ясно. Кстати, есть еще в линуксах /var/tmp. А удаление при перезагрузке содержимого /tmp - штатное поведение системы.

Deleted
()
Ответ на: комментарий от Deleted

Выше уже подсказали решение, которое мне как раз подходит. Под Linux возвращает подкаталог в ~/.cache, под винду в APPDATA. При этом обрабатывает некоторые дополнительные случаи (под виндой), а также поддерживает Mac OS.

KivApple ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.