Windows で os.path.join でスラッシュが混在している。
2023-08-15 01:30:28
質問
私はパス('/')にスラッシュのみを使用する傾向があり、pythonはWindows上でもそれで満足です。 os.path.joinの説明では、クロスプラットフォームにしたい場合、それが正しい方法であると言っています。しかし、私がそれを使用するとき、私は混合されたスラッシュを得る。
import os
a = 'c:/'
b = 'myFirstDirectory/'
c = 'mySecondDirectory'
d = 'myThirdDirectory'
e = 'myExecutable.exe'
print os.path.join(a, b, c, d, e)
# Result:
c:/myFirstDirectory/mySecondDirectory\myThirdDirectory\myExecutable.exe
これは正しいのでしょうか?後から確認して修正したほうがいいのか、それとももっといい方法があるのでしょうか?
ありがとうございます。
EDITです。 私はまた、パスを要求するときに混合スラッシュを取得します。
import sys
for item in sys.path:
print item
# Result:
C:\Program Files\Autodesk\Maya2013.5\bin
C:\Program Files\Autodesk\Maya2013.5\mentalray\scripts\AETemplates
C:\Program Files\Autodesk\Maya2013.5\Python
C:\Program Files\Autodesk\Maya2013.5\Python\lib\site-packages
C:\Program Files\Autodesk\Maya2013.5\bin\python26.zip\lib-tk
C:/Users/nookie/Documents/maya/2013.5-x64/prefs/scripts
C:/Users/nookie/Documents/maya/2013.5-x64/scripts
C:/Users/nookie/Documents/maya/scripts
C:\Program Files\Nuke7.0v4\lib\site-packages
C:\Program Files\Nuke7.0v4/plugins/modules
どのように解決するのですか?
スラッシュのいくつかを自分で用意し、それを
os.path.join
に他のものを選ばせていることになります。Pythonに全部選ばせるか、自分で全部用意したほうがいいでしょう。Pythonはパスの後半部分にバックスラッシュを使用します。これはバックスラッシュがWindowsのデフォルトだからです。
import os
a = 'c:' # removed slash
b = 'myFirstDirectory' # removed slash
c = 'mySecondDirectory'
d = 'myThirdDirectory'
e = 'myExecutable.exe'
print os.path.join(a + os.sep, b, c, d, e)
テストしたわけではありませんが、参考になれば幸いです。 ベースパスがあり、他の1つの要素(ほとんどはファイル)だけを結合する必要がある方が一般的です。
ところで、あなたは
os.sep
は、python が動作しているオペレーティングシステムのための最良のセパレータを持ちたい場合に使用します。
編集します。 dash-tom-bangが言うように、どうやらWindowsではパスのルートにセパレータを含む必要があるようです。そうでなければ、絶対パスではなく相対パスを作成することになります。
関連
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Windows での Git リポジトリのディレクトリを無視する
-
[解決済み] この場合、なぜ os.path.join() は動作しないのでしょうか?
-
[解決済み】WindowsでTCPまたはUDPポートをリッスンしているプロセスを見つけるにはどうすればよいですか?
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
-
[解決済み] WindowsでのPython os.path.join