본문 바로가기

카테고리 없음

파이썬 코드로 폴더 생성하고 삭제하기

파이썬에는 Operating System를 제어할 수 있는 os 모듈이 있습니다. 이 모듈을 사용해서 폴더를 생상하고 삭제하는 방법을 알아보겠습니다.

 

import os
os.listdir('C:/Users/User/Desktop/TestFolder')

# []

 

실습을 위해서 바탕화면에 TestFolder라는 빈 폴더를 만들었습니다. os 모듈을 입력하고 해당 폴더의 전체 파일 목록을 읽었습니다. 방금 만든 빈 폴더이기 때문에 아무것도 빈 리스트를 출력한 것을 볼 수 있습니다.

 

os.mkdir() : 폴더 만들기 

os.mkdir('폴더 경로')와 같이 사용합니다. 폴더가 이미 존재한다면 FileExistsError가 발생합니다. 

 

os.mkdir('C:/Users/jeong/Desktop/TestFolder/new')
os.listdir('C:/Users/jeong/Desktop/TestFolder')

# ['new']

 

 

os.makedirs() : 모든 폴더 만들기 

이 함수는 os.mkdir와 같지만 "C:/Users/User/Desktop/TestFolder/new"와 같이 긴 경로에 있는 모든 폴더를 한 번에 만들어 줍니다. makedirs('폴더 경로')와 같이 사용합니다.

 

os.makedirs('C:/Users/User/Desktop/TestFolder/new/a/b/c')
os.listdir('C:/Users/User/Desktop/TestFolder/new')

# ['a']

 

 

폴더가 없으면 생성하고 기존에 존재하는 경우에도 오류를 발생시키지 않는 방법

 

폴더가 이미 존재한다면 makedirs 함수는 오류가 발생합니다. 이렇게 오류가 발생하면 코드 실행이 중단돼서 문제가 되겠죠. 이걸 간단히 방지하는 방법이 있습니다. exist_ok=True를 입력하는 것입니다. os.makedirs('폴더 경로', exist_ok=True) 처럼 사용합니다. 오류 메시지가 발생하지 않습니다.

 

 

os.rmdir() : 폴더 지우기 

빈 폴더를 지울 수 있습니다. 비어있지 않다면 오류가 발생합니다.

 

os.rmdir('C:/Users/User/Desktop/TestFolder/new/a/b/c')
os.listdir('C:/Users/User/Desktop/TestFolder/new/a/b')

# []

 

빈 폴더가 아니더라도 강제로 지우고 싶다면

 

파일이 들어있는 폴더를 삭제하기 위해서는 다른 방법이 필요합니다. 폴더 안에 모든 내용을 다 지우기 위해서는 아래와 같은 코드를 사용하면 됩니다.

 

import shutil

shutil.rmtree('/folder_name', ignore_errors=True)

 

아래 코드를 실행하면 하위 모든 폴더까지 삭제된 것을 확인할 수 있습니다.

 

import shutil

shutil.rmtree('C:/Users/User/Desktop/TestFolder/new', ignore_errors=True)
os.listdir('C:/Users/User/Desktop/TestFolder')

# []

 

 

- 이 글은 아나콘다(Anaconda3)가 설치된  주피터 노트북에서 작성되었습니다.