본문 바로가기
  • Hello_
Python/OS

[Python] os, shutil - 폴더 생성 및 삭제하기

by LDwDL 2022. 9. 9.
728x90
반응형

오늘은 os와 shutil을 사용해 폴더 생성 및 삭제하기에 대해 포스팅을 하겠다.

 

os.mkdir()

기존 경로 형태는 다음과 같다.

예시로 "music_sample" 폴더 내에 새로운 폴더를 구성하겠다.

경로 형태

 

[폴더 생성]

os.mkdir()을 통해 원하는 경로에 특정 폴더를 구성할 수 있다.

import os

dir = './music_sample'

print(os.listdir(dir))
# ['0001.wav', '0002.wav', '0003.wav', '0004.wav', '0005.wav', '0006.wav', '0007.wav', '0008.wav', 'annotation.txt']

os.mkdir('./music_sample/new_folder')

print(os.listdir(dir))
# ['0001.wav', '0002.wav', '0003.wav', '0004.wav', '0005.wav', '0006.wav', '0007.wav', '0008.wav', 'annotation.txt', 'new_folder']

 

os.rmdir()

[폴더 삭제]

os.rmdir()을 통해 원하는 경로에 특정 폴더를 삭제할 수 있다.

os.rmdir('./music_sample/new_folder')

print(os.listdir(dir))
# ['0001.wav', '0002.wav', '0003.wav', '0004.wav', '0005.wav', '0006.wav', '0007.wav', '0008.wav', 'annotation.txt']

 

다만, 만약 삭제하고자 하는 경로 내부에 파일이 존재한다면 다음과 같은 오류가 발생한다.

Error

말그대로 삭제하고자 하는 경로가 비어 있지 않은 것이다. 

이때는 그 경로 하위 폴더 및 파일을 모두 지워도 되지만, 번거롭고 비효율적이다.

 

shutil.rmtree()

shutil 라이브러리의 rmtree를 활용하면 경로 내에 어떠한 파일이 있더라도 삭제가 된다.

 

[폴더 삭제]

shutil.rmtree() 활용.

import shutil

shutil.rmtree('./music_sample/new_folder')

print(os.listdir(dir))
# ['0001.wav', '0002.wav', '0003.wav', '0004.wav', '0005.wav', '0006.wav', '0007.wav', '0008.wav', 'annotation.txt']

 

다음과 같이 os와 shutil을 활용하여 새로운 경로를 생성하고 삭제할 수 있다.

필자는 빈 폴더를 생성할 때는 os.mkdir(), 폴더를 삭제할 때는 shutil.rmtree()를 주로 활용한다.

 

 

 

728x90
반응형

댓글