【问题标题】:python use literal / vs os.path.seppython使用文字/ vs os.path.sep
【发布时间】:2018-10-22 11:10:12
【问题描述】:

我一直在认真使用 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

【问题讨论】:

  • 注意:在Windows机器上os.sep == '\\'os.path.join()ntpath.py中重新定义,它使用'\\'

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2011-10-17
    • 1970-01-01
    • 2016-07-15
    • 2015-05-29
    • 1970-01-01
    相关资源
    最近更新 更多