1. ホーム
  2. python

[解決済み] プラットフォームに依存しない"/","∕"を使ったパス連結?

2022-10-15 03:57:21

質問

Python で、私は変数 base_dirfilename . これらを連結して、次のようにしたい。 fullpath . しかし、Windowsでは、私は \ で、POSIX では / .

fullpath = "%s/%s" % ( base_dir, filename ) # for Linux

このプラットフォームを独立させるにはどうしたらいいですか?

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

あなたが使用したいのは os.path.join() を使用します。

文字列の連結などではなく、これを使う強みは、パスセパレータなど、OS特有の様々な問題を意識していることです。例を挙げます。

import os

Windows 7 :

base_dir = r'c:\bla\bing'
filename = r'data.txt'

os.path.join(base_dir, filename)
'c:\\bla\\bing\\data.txt'

Linux :

base_dir = '/bla/bing'
filename = 'data.txt'

os.path.join(base_dir, filename)
'/bla/bing/data.txt'

この os モジュールは、ディレクトリやパスの操作、OS 固有の情報を見つけるための 多くの便利なメソッドを含んでいます。 os.sep