← Все вопросы

Как собрать путь к файлу, чтобы работало и на Windows, и на Linux?

Задан 1 месяц назад590 просмотров2 ответа
12

Склеиваю путь руками строкой через слэш: folder + '/' + filename. На винде иногда ломается из-за обратных слэшей и вообще выглядит костыльно. Как делать правильно и кроссплатформенно?

2 ответа

23

Не клей слэши руками — для этого есть os.path.join, он сам подставит правильный разделитель под текущую ОС:

import os

path = os.path.join('data', 'logs', 'app.txt')
# Linux:   data/logs/app.txt
# Windows: data\\logs\\app.txt

Современная альтернатива — pathlib, где пути собираются через оператор /:

from pathlib import Path

path = Path('data') / 'logs' / 'app.txt'

Оба варианта кроссплатформенны. pathlib сейчас считается более удобным: у объекта Path сразу есть .exists(), .name, .suffix и т.п.

6

os.path.join(a, b) вместо ручной склейки.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект