2013-03-27 17 views
0

, 내가 예에 대해 다음 명령을 사용하여 동일한 이름을 가진 여러 파일을 삭제할 수 있음을 이해 파이썬에서 여러 디렉토리를 삭제합니다파이썬에서

for f in glob.glob("file_name_*.txt"): 
    os.remove(f) 

그리고 하나의 디렉토리가 shutil.rmtree('/path/to/dir')으로 삭제 될 수 있음 - 그 이 명령은 디렉토리가 비어 있지 않아도 디렉토리를 삭제합니다. 반면에 os.rmdir()은 디렉토리가 비어 있어야합니다.

같은 이름의 여러 디렉토리를 실제로 삭제하려면 비어 있지 않습니다. 그래서 나는 비슷한 것을 찾고 있습니다 shutil.rmtree('directory_*')

파이썬으로 이것을 할 수있는 방법이 있습니까?

답변

0

당신은 모든 조각이 있습니다 glob() 반복을하고, rmtree()은 삭제합니다

for path in glob.glob("directory_*"): 
    shutil.rmtree(path) 

는 이쪽 globbed 경로 이름 중 하나의 파일의 경우, 또는 rmtree()이 실패 할 수있는 다른 이유로 OSError 발생합니다. 오류 처리 방법을 결정한 후에는 적절하게 오류 처리를 추가 할 수 있습니다. 오류로 무엇을하고 싶은지 알지 못하는 한 오류 처리를 추가하는 것은 의미가 없기 때문에 오류 처리를 남겨 둡니다.

+0

누군가이 질문에 어떻게 대답하지 못하는지 설명 할 수 있습니까? –

+1

실제로 디렉토리인지 확인하지 않습니다. 'if os.path.isdir' 또는 무엇인가 포함하는 것을 고려해보십시오. – wim

+0

@wim : 그것은 downvote가 아니라 주석이나 편집을위한 근거입니다. 시스템을 사용하십시오. –