1

我使用 python 2.6 编写脚本,但由于要求限制,我必须将脚本降级到 python 2.5,如何使用 python 2.5 获取相对路径?

我之前使用的是:

os.path.relpath(path[, start])

但由于这是 2.6 的新功能,我不能再使用它了。

谢谢并恭祝安康!

4

1 回答 1

2

尝试Python 中的相对路径,它应该为您提供有价值的信息。

>>> import sys
>>> import os.path
>>> sys.path[0]
'C:\\Python25\\Lib\\idlelib'
>>> os.path.relpath(sys.path[0], "path_to_libs") # if you have python 2.6
>>> os.path.join(sys.path[0], "path_to_libs")
'C:\\Python25\\Lib\\idlelib\\path_to_libs'

编辑:发现更多http://www.saltycrane.com/blog/2010/03/ospathrelpath-source-code-python-25/ 这是詹姆斯加德纳的重新实现:

from posixpath import curdir, sep, pardir, join

def relpath(path, start=curdir):
    """Return a relative version of a path"""
    if not path:
        raise ValueError("no path specified")
    start_list = posixpath.abspath(start).split(sep)
    path_list = posixpath.abspath(path).split(sep)
    # Work out how much of the filepath is shared by start and path.
    i = len(posixpath.commonprefix([start_list, path_list]))
    rel_list = [pardir] * (len(start_list)-i) + path_list[i:]
    if not rel_list:
        return curdir
    return join(*rel_list)
于 2013-01-31T16:59:42.113 回答