python教程—混合斜杠与os.path。在windows上加入-Python实用宝典

python教程—混合斜杠与os.path。在windows上加入

我倾向于只对路径使用前斜杠('/'),python也乐于在windows上使用它。 在os.path的描述中。join说如果你想跨平台,这是正确的方式。但当我使用它时,我得到了混合斜杠:

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

这是正确的吗?我应该事后检查并改正,还是有更好的方法?

谢谢

编辑:
当询问路径时,我也会得到混合斜杠

    import sys for item in sys.path: print item # Result: C:Program FilesAutodeskMaya2013.5bin C:Program FilesAutodeskMaya2013.5mentalrayscriptsAETemplates C:Program FilesAutodeskMaya2013.5Python C:Program FilesAutodeskMaya2013.5Pythonlibsite-packages C:Program FilesAutodeskMaya2013.5binpython26.ziplib-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 FilesNuke7.0v4libsite-packages C:Program FilesNuke7.0v4/plugins/modules

回答

现在您自己提供了一些斜杠,并让os.path。加入< / >选择别人。最好让python选择所有这些选项,或者自己提供所有选项。Python对路径的后半部分使用反斜杠,因为反斜杠是Windows上的默认值。

    import os a = 'c:' # removed slash b = 'myFirstDirectory' # removed slash c = 'mySecondDirectory' d = 'myThirdDirectory' e = 'myExecutable.exe' print os.path.join(a + os.sep, b, c, d, e)

我还没有测试过这个,但我希望它能有所帮助。更常见的情况是有一个基本路径,并且只需要连接另一个元素,主要是文件。

顺便说一下;您可以使用os。对于那些您希望为运行python的操作系统提供最佳分隔符的时刻,sep

Edit: as dash-tom-bang states,显然对于Windows,您需要为路径的根包含分隔符。否则,您将创建一个相对路径,而不是绝对路径。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论