2011-08-23 3 views
1

새로 추가 된 디렉토리의 서브 디렉토리, 예를 제거하는 디렉토리의 목록을 수정하는 방법 :내가 디렉토리의 목록을

direc_list = [r'C:\test', r'C:\test2\subdir'] 
내가 다음 목록

new_direc = r'C:\test2' 

방법에 다른 디렉토리를 추가 할

목록에서이 새 디렉토리의 하위 디렉토리를 올바르게 제거 할 수 있습니까? 단어 '테스트'의 하위 문자열이기 때문에

r'C:\test2'를 추가 한 후 내 출력은

direc_list 
>>> [r'C:\test', r'C:\test2'] 

내가 in 연산자를 사용하여이 작업을 시도하고 있었다 그래서

for direc in direc_list:   
    if new_direc in direc: 
     direc_list.remove(direc) 

해야하지만 실패 test2 '

답변

1

경로 뒤에 경로 구분 기호를 추가하기 만하면됩니다.

import os 
for direc in direc_list:   
    if direc.startswith(new_direc + os.sep): 
     dir_list.remove(direc) 
+0

감사합니다. os.sep를 사용하면 도움이됩니다. – Kim

2

다음과 같이 str.startswith()를 사용하십시오.

for direc in direc_list: 
    if direc.startswith(new_direc): 
     dir_list.remove(direc) 

입력에 따라 os.path.abspath (path)와 같은 것을 체크 아웃하여 경로를 정상화하여 더 잘 일치하도록 할 수 있습니다.

관련 문제