2015-01-20 5 views
0

여러 컴퓨터에서 클라우드 디렉토리의 스크립트를 실행하므로 다른 여러 상대 경로에 출력을 저장하려면 상대 경로에 액세스해야합니다. 다음 스크립트가 클라우드 디렉토리의 루트를 리턴 할 것으로 예상했지만 대신 none 유형을 리턴합니다. 아무도 왜 그 이유를 이해하도록 도와 줄 수 있습니까?python 반환 상대 상위 디렉토리

def get_relative_path(base_folder_name, current_path): 
    import os 

    parent = os.path.split(current_path)[0] 
    print base_folder_name, os.path.split(current_path)[1] 
    print type(base_folder_name), type(os.path.split(current_path)[1]) 

    if os.path.split(current_path)[1] == base_folder_name: 
      return current_path 
    else: 
      get_relative_path(base_folder_name, parent) 

import os 
path = os.getcwd() 
x = get_relative_path('cloud_folder', path) 
print type(x) 

스크립트는 반환

cloud_folder child_folder 
<type 'str'> <type 'str'> 
cloud_folder cloud_folder 
<type 'str'> <type 'str'> 
<type 'NoneType'> 

내가 클라우드 폴더에 대한 상대 경로로 문자열을 반환하기를 기대했다. 왜 이런거야?

답변

1
if os.path.split(current_path)[1] == base_folder_name: 
     return current_path 
else: 
     return get_relative_path(base_folder_name, parent) 

당신은뿐만 아니라

를 다른 케이스를 반환해야