[解決済み] 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)
(のようにします(もし、先頭の
/
も無視されなければなりません -- 先頭の部分が特殊ケースでなければならないのであれば、それももちろん可能です;-)。
関連
-
[解決済み] Pythonスクリプトのプロファイリングはどのように行うのですか?
-
[解決済み] Pythonでパスから拡張子なしでファイル名を取得する方法は?
-
[解決済み] Pythonの関数が例外を投げるかどうかをテストするにはどうすればよいですか?
-
[解決済み] Pythonでファイルの絶対パスを取得する方法
-
[解決済み] Pythonの__future__は何に使うのか、いつ、どのように使うのか、その仕組みについて
-
[解決済み] chromedriverでSeleniumを使用していることをWebサイトで検出することは可能ですか?
-
[解決済み] javascriptでURLをホスト名とパスにパースするには?
-
[解決済み] PythonでURLパラメータをパーセントエンコードするにはどうしたらいいですか?
-
[解決済み】典型的なテストディレクトリ構造でunittestを実行する
-
[解決済み】Pythonで2つの変数の論理xorを取得するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PicgoのイメージベッドツールをPythonで実装する
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み] 絶対URと相対URを結合するには?