【发布时间】:2013-05-02 08:31:53
【问题描述】:
我倾向于只对路径('/')使用正斜杠,python 也对它在 Windows 上很满意。 在 os.path.join 的描述中,如果你想跨平台,这是正确的方法。但是当我使用它时,我得到了混合斜线:
import os
a = 'c:/'
b = 'myFirstDirectory/'
c = 'mySecondDirectory'
d = 'myThirdDirectory'
e = 'myExecutable.exe'
print os.path.join(a, b, c, d, e)
# Result:
c:/myFirstDirectory/mySecondDirectory\myThirdDirectory\myExecutable.exe
这是正确的吗?我应该以后检查并纠正它还是有更好的方法?
谢谢
编辑: 在询问路径时,我也会得到混合斜线
import sys
for item in sys.path:
print item
# Result:
C:\Program Files\Autodesk\Maya2013.5\bin
C:\Program Files\Autodesk\Maya2013.5\mentalray\scripts\AETemplates
C:\Program Files\Autodesk\Maya2013.5\Python
C:\Program Files\Autodesk\Maya2013.5\Python\lib\site-packages
C:\Program Files\Autodesk\Maya2013.5\bin\python26.zip\lib-tk
C:/Users/nookie/Documents/maya/2013.5-x64/prefs/scripts
C:/Users/nookie/Documents/maya/2013.5-x64/scripts
C:/Users/nookie/Documents/maya/scripts
C:\Program Files\Nuke7.0v4\lib\site-packages
C:\Program Files\Nuke7.0v4/plugins/modules
【问题讨论】:
-
os很聪明,可以计算出您的操作系统需要哪些斜线。要正确使用它,请不要在字符串 a、b、c、d 和 e 中添加斜杠 - os 会添加它们。 -
我明白了,但是如果我在询问路径时得到混合斜线怎么办? (我已经用一个例子更新了第一篇文章)
-
您可以使用
os.path.normpath(mixed_slashes_path)并使斜线标准化。哦,我猜你是在 Maya 内部做的;它做的事情非常类似于 UNIX,因此它为您添加的路径中的斜线。