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.joinPOSIXOSの種類( 、、、など)Windowsに応じて、文字列をインテリジェントに結合してファイルパスを形成しますMac 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 に答える