0

视窗 7,Python 3.3。我正在使用以下方法生成共享驱动器上文件和文件夹的 URL:

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 编码方面不是很擅长,所以不喜欢。

4

1 回答 1

0

文档

将路径名路径从路径的本地语法转换为 URL 的路径组件中使用的形式

Windows 上的“本地语法”使用反斜杠,而不是正斜杠。因此,如果您通过//WDSHARESPACE,则不会以任何方式对正斜杠进行特殊处理。

只需看看实现,看看到底发生了什么。如果路径不是以驱动器号或两个反斜杠开头,则该函数只是将反斜杠转换为正斜杠并引用其余部分。

还要注意文档字符串的这一部分:

不推荐用于一般用途

于 2013-09-15T22:58:03.620 回答