3

我需要将文件路径从 MAC 更改为 Windows,我正打算做一个简单.replace()的操作/\但我突然想到可能有更好的方法。所以例如我需要改变:

foo/bar/file.txt

至:

foo\bar\file.txt
4

4 回答 4

5

你可以使用这个:

>>> s = '/foo/bar/zoo/file.ext'
>>> import ntpath
>>> import os
>>> s.replace(os.sep,ntpath.sep)
'\\foo\\bar\\zoo\\file.ext'
于 2012-08-09T18:27:49.840 回答
3

转换为 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 分隔符。

于 2019-09-08T22:15:00.373 回答
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
于 2021-04-26T11:50:41.417 回答
0

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")
于 2012-08-09T17:40:51.333 回答