ファイルパスをMACからWindowsに変更する必要があり、単純な.replace()
ものを実行しようと/
し\
ていましたが、もっと良い方法があるかもしれないと思いました。たとえば、次のように変更する必要があります。
foo/bar/file.txt
に:
foo\bar\file.txt
ファイルパスをMACからWindowsに変更する必要があり、単純な.replace()
ものを実行しようと/
し\
ていましたが、もっと良い方法があるかもしれないと思いました。たとえば、次のように変更する必要があります。
foo/bar/file.txt
に:
foo\bar\file.txt
あなたはこれを使うことができます:
>>> s = '/foo/bar/zoo/file.ext'
>>> import ntpath
>>> import os
>>> s.replace(os.sep,ntpath.sep)
'\\foo\\bar\\zoo\\file.ext'
Unixへの変換:
import os
import posixpath
p = "G:\Engineering\Software_Development\python\Tool"
p.replace(os.sep, posixpath.sep)
これにより、used-osセパレーターがUnixセパレーターに置き換えられます。
Windowsへの変換:
import os
import ntpath
p = "G:\Engineering\Software_Development\python\Tool"
p.replace(os.sep, ntpath.sep)
これにより、used-osセパレーターがWindowsセパレーターに置き換えられます。
pathlib
モジュール(Python 3.4で導入)はこれをサポートしています:
from pathlib import PureWindowsPath, PurePosixPath
# Windows -> Posix
win = r'foo\bar\file.txt'
posix = str(PurePosixPath(PureWindowsPath(win)))
print(posix) # foo/bar/file.txt
# Posix -> Windows
posix = 'foo/bar/file.txt'
win = str(PureWindowsPath(PurePosixPath(posix)))
print(win) # foo\bar\file.txt
os.path.join
POSIX
OSの種類( 、、、など)Windows
に応じて、文字列をインテリジェントに結合してファイルパスを形成しますMac OS
参照:http ://docs.python.org/library/os.path.html#os.path.join
あなたの例のために:
import os
print os.path.join("foo", "bar", "file.txt")