我倾向于只使用前斜杠路径('/'),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
会自动添加它们。 - ejrbos.path.normpath(mixed_slashes_path)
来规范化斜杠。哦,我猜你是在Maya内部执行这个操作;它的行为非常类似于UNIX系统,因此在添加路径时会包含斜杠。 - dash-tom-bang