python使用literal / vs os.path.sep

时间:2018-05-12 02:42:55

标签: python-3.x python-2.7 operating-system

我一直在认真使用os.path.sep而不是文字'/'。因此,我很惊讶今天查看os.path.join的源代码并使用文字查看它。

我认为在Windows平台上,一些较低级别的库例程在使用OS函数调用文件系统或其他“/”时将'/'转换为'\'。

在不损害Windows可移植性的情况下使用文字是否安全?

def join(a, *p):
    path = a
    for b in p:
        if b.startswith('/'):
            path = b
        elif path == '' or path.endswith('/'):
            path +=  b
        else:
            path += '/' + b
    return path

1 个答案:

答案 0 :(得分:1)

Python为不同的操作系统提供了不同的来源。您可以查看文件macpath.py,ntpath.py和posixpath.py,为相应的平台实现连接功能。每个文件定义sep变量以指示相应平台的分离符号。我想说进一步使用os.path.sep是安全的,否则代码将与其他操作系统不兼容。