Что делать с обратными слешами `\` в url-адресе?
В URL не должно быть обратных слешей \
, стандартом разрешён один лишь разделитель, и это прямой слеш /
. Если вы работаете на Windows, то наверняка столкнётесь с рядом проблем.
Проблемы начинаются когда в данные попадают пути с каталогами:
images\photo.png
books\amigo.txt
Первое что приходит в голову — это заменить один слеш \
другим /
. Пускай в переменной был путь, теперь это адрес. Простое и изящное решение, а главное — оно работает. Работает оно на Windows, и ломает программу на Linux и Mac. Там символ \
разрешён в именах файлов и каталогов, поэтому нельзя заменять все обратные слеши не глядя. Выход из положения есть — ориентируйтесь на значение os.sep.
Если вы сами готовите входные данные, то и есть ещё два варианта. Первый — хранить только названия файлов, но не пути целиком. Вариант второй — во всех путях использовать прямые слеши вместо обратных, даже несмотря на то, что это Windows. Это сработает, потому что: Slash /
is recognized as a directory separator by the MS-DOS and Windows command-line.
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.