platformdirs

A Python package for determining platform-specific directories (e.g. user data, config, cache, logs). Handles the
differences between macOS, Windows, Linux/Unix, and Android so you don't have to.
Quick start
from platformdirs import PlatformDirs
dirs = PlatformDirs("MyApp", "MyCompany")
dirs.user_data_dir
dirs.user_config_dir
dirs.user_cache_dir
dirs.user_state_dir
dirs.user_log_dir
dirs.user_documents_dir
dirs.user_downloads_dir
dirs.user_runtime_dir
For Path objects instead of strings:
from platformdirs import PlatformDirs
dirs = PlatformDirs("MyApp", "MyCompany")
dirs.user_data_path
dirs.user_config_path
Convenience functions for quick access:
from platformdirs import user_data_dir, user_config_path
user_data_dir("MyApp", "MyCompany")
user_config_path("MyApp", "MyCompany")
Directory types
- Data: Persistent application data (
user_data_dir, site_data_dir)
- Config: Configuration files and settings (
user_config_dir, site_config_dir)
- Cache: Cached data that can be regenerated (
user_cache_dir, site_cache_dir)
- State: Non-essential runtime state like window positions (
user_state_dir, site_state_dir)
- Logs: Log files (
user_log_dir, site_log_dir)
- Runtime: Runtime files like sockets and PIDs (
user_runtime_dir, site_runtime_dir)
Each type has both user_* (per-user, writable) and site_* (system-wide, read-only for users) variants.
Documentation
Full documentation is available at platformdirs.readthedocs.io:
Contributions are welcome! See CONTRIBUTING.md for
details.