将路径字符串的格式更改为其他操作系统

时间:2012-08-09 17:37:38

标签: python path operating-system

我需要将文件路径从mac更改为Windows,我只需要一个简单的.replace()任何/ \,但我想到可能有更好的方法。例如,我需要改变:

foo/bar/file.txt

为:

foo\bar\file.txt

4 个答案:

答案 0 :(得分:3)

您可以使用:

>>> s = '/foo/bar/zoo/file.ext'
>>> import ntpath
>>> import os
>>> s.replace(os.sep,ntpath.sep)
'\\foo\\bar\\zoo\\file.ext'

答案 1 :(得分:2)

转换为Unix:

import os
import posixpath
p = "G:\Engineering\Software_Development\python\Tool"
p.replace(os.sep, posixpath.sep)

这会将用过的OS分隔符替换为Unix分隔符。

转换为Windows:

import os
import ntpath
p = "G:\Engineering\Software_Development\python\Tool"
p.replace(os.sep, ntpath.sep)

这会将用过的OS分隔符替换为Windows分隔符。

答案 2 :(得分:1)

os.path.join将智能地连接字符串以形成文件路径,具体取决于您的操作系统类型(POSIXWindowsMac OS等。

参考http://docs.python.org/library/os.path.html#os.path.join

对于你的例子:

import os

print os.path.join("foo", "bar", "file.txt")

答案 3 :(得分:1)

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