0

Windows 7、パイソン 3.3。次の方法を使用して、共有ドライブ上のファイルとフォルダーへの URL を生成しています。

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

パスがドライブ文字で始まる場合、上記は前に 3 つのスラッシュを追加して戻ります。

file:///Z:/foo

これはまさに私が必要とするものです。しかし、パスがネットワーク パス "//WDSHARESPACE" (修正: "\WDSHARESPACE") で始まる場合、私は取得しています

file://WDSHARESPACE/Public/foo

IE では動作しますが、Firefox では動作しません。(Firefox は 3 つのスラッシュと元の 2 つのスラッシュを必要とします)、したがって:

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

これを達成するエレガントな方法はありますか、それともさまざまなケースをテストする必要がありますか? 私は HTML コーディングが得意ではないので、したくありません。

4

1 に答える 1

0

ドキュメントから:

パスのローカル構文から URL のパス コンポーネントで使用される形式へのパス名 path の変換

Windows の「ローカル構文」は、スラッシュではなくバックスラッシュを使用します。したがって、 を渡す//WDSHARESPACEと、スラッシュは特別に扱われません。

実装を見て、実際に何が起こっているかを確認してください。パスがドライブ文字または 2 つのバックスラッシュで始まらない場合、関数はバックスラッシュをスラッシュに変換し、残りを引用符で囲みます。

docstring の次の部分にも注意してください。

一般的な使用はお勧めしません

于 2013-09-15T22:58:03.620 に答える