2013-01-31 2 views
1

스크립트 용으로 Python 2.6을 사용하고 있었지만 요구 사항 제한 사항 때문에 스크립트를 Python 2.5로 다운 그레이드해야했지만 파이썬 2.5를 사용하여 상대 경로를 얻는 방법은 무엇입니까?Python 2.5에서 상대 파일 경로를 얻는 방법은 무엇입니까?

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

을하지만이 2.6에서 새로운이기 때문에 나는 더 이상 사용할 수 없습니다

나는 이전에 사용되었다.

감사합니다.

답변

2

시도해보십시오. Relative paths in 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) 
+0

내가 첫 번째 옵션에 대한 파이썬 2.6을 사용할 수 없습니다. secound 옵션은 python 2.5와 호환됩니까? – Ghasfarost

+0

가정합니다. 링크를 열고 "Python 2.5와 호환되는 버전"을 포함하는 전체 설명을 읽을 수 있습니다. – SamGamgee

관련 문제