1. ホーム
  2. python

[解決済み] PythonでURLを作成する際にパスのコンポーネントを結合する方法

2022-06-06 19:21:11

質問

例えば、/js/foo.jsのようなリソースパスにプレフィックスパスを結合したいのですが、どうすればよいですか?

結果のパスは、サーバーのルートからの相対パスであってほしいのです。 上記の例では、プレフィックスが "media" であれば、結果は /media/js/foo.js となります。

os.path.join はこれを本当にうまく行いますが、どのようにパスを結合するかは OS に依存します。 この場合、私は、ローカル ファイル システムではなく、ウェブをターゲットにしていることを知っています。

URL で使用されることがわかっているパスを使用している場合、最良の代替手段がありますか。 os.path.join は十分に機能するのでしょうか? 私は自分自身をロール オーバーする必要がありますか?

どのように解決するのですか?

OPが投稿したコメントから、どうやら彼は はありません。 の重要な仕事の一つである) 結合において "絶対 URL" を保持したいようです。 urlparse.urljoin の重要な仕事の一つです)、私はそれを避けることをお勧めします。 os.path.join もまた、まったく同じ理由で、よくないでしょう。

というわけで、私なら次のようなものを使います。 '/'.join(s.strip('/') for s in pieces) (のようにします(もし、先頭の / も無視されなければなりません -- 先頭の部分が特殊ケースでなければならないのであれば、それももちろん可能です;-)。