python - 在 Windows 上使用 os.path.join 混合斜线

标签 python windows path

我倾向于只对路径('/')使用正斜杠,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

最佳答案

您可以在 path.join() 之后使用 .replace() 来确保斜线正确:

# .replace() all backslashes with forwardslashes
print os.path.join(a, b, c, d, e).replace("\\","/")

这给出了输出:

c:/myFirstDirectory/mySecondDirectory/myThirdDirectory/myExecutable.exe

正如@sharpcloud 建议的那样,最好从输入字符串中删除斜杠,但这是另一种选择。

关于python - 在 Windows 上使用 os.path.join 混合斜线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16333569/

相关文章:

java - Glassfish - 读取文件 - 正确的目录

path - What\bin 从 jdk 添加到系统路径环境变量

python - Plt.show 显示完整图表,但 savefig 正在裁剪图像

python - 在使用 Python 和 pypyodbc 的 Windows 上,如何列出可用的驱动程序?

python - 使用正则表达式匹配 python 中文件的开头和结尾

java - 从 txt 文件中删除前 18 个字符的批处理文件

python - 如何使用 PIL 优化调色板图像大小?

windows - 适用于 Windows 的类似 Cron 的系统?

windows - 用于解锁驱动器的 Bitlocker 脚本

android - 从 sdcard marshmallow 文件的 URI 获取真实路径