2013-09-15 3 views
0

Windows 7, Python 3.3. Я использую следующий метод для создания URL-адреса к файлам и папкам на нашем общем диске:urlreq.pathname2url не возвращает слишком много косых черт?

import urllib.request as urlreq 
    ... 
urlreq.urljoin('file:', urlreq.pathname2url(path)) 

Если путь начинается с буквы диска, то выше добавляет три косые черты на фронт и возвращается:

file:///Z:/foo 

Это именно то, что мне нужно. Но если путь начинается с нашим сетевым путем «// WDSHARESPACE» (Исправление: «\ WDSHARESPACE»), то я получаю

file://WDSHARESPACE/Public/foo 

, который работает с IE, но не с Firefox. (Firefox хочет три косые черты, плюс оригинальные два), так:

file://///WDSHARESPACE/Public/foo 

Есть элегантный способ сделать это, или мне нужно сделать, чтобы проверить для различных случаев? Я не очень силен в кодировании HTML, поэтому предпочел бы этого не делать.

ответ

0

От docs:

Преобразовать путь имени пути из локального синтаксиса для пути к форме, используемой в компоненте пробега в URL

«локальный синтаксис» на окна использования обратную косую черту, а не косые черты. Поэтому, если вы пройдете //WDSHARESPACE, косые черты не обрабатываются специально.

Просто взгляните на implementation, чтобы узнать, что происходит на самом деле. Если путь не начинается с букв диска или двух обратных косых черт, функция просто преобразует обратную косую черту в перекладину и цитирует остальные.

отметить также эту часть: строку документации

не рекомендуется для общего использования

+0

Sorry Мата. Я использовал правильную обратную косую черту и получил результат, который я опубликовал. Я случайно набрал косые черты, когда отправил мой вопрос. – buttonsrtoys

Смежные вопросы