Python을 사용하여 파일 및 디렉터리를 삭제하는 방법

Suraj Joshi 2023년1월30일
  1. Python에서 os 모듈을 사용하여 파일 삭제
  2. Python에서pathlib 모듈을 사용하여 파일 삭제
  3. Python에서 패턴 일치를 사용하여 파일 삭제
  4. Python os 모듈을 사용하여 디렉토리 삭제
  5. Python pathlib 모듈을 사용하여 디렉토리 삭제
  6. Python shutil.rmtree 메서드를 사용하여 비어 있지 않은 디렉터리 삭제
Python을 사용하여 파일 및 디렉터리를 삭제하는 방법

이 기사에서는 os,pathlib,shutil과 같은 Python 내장 패키지로 파일과 디렉토리를 삭제하는 방법을 소개합니다.

Python에서 os 모듈을 사용하여 파일 삭제

os는 Python 2와 Python 3에서 모두 사용할 수있는 내장 패키지입니다.

os 모듈에서remove()unlink()를 사용하여 Python을 사용하여 파일을 삭제할 수 있습니다. 이 두 기능은 모두 유사합니다. 둘 다 삭제할 ​​파일의 경로를 인수로 사용합니다.

import os

os.remove("test_dir/main.py")

test_dir 안에있는main.py라는 파일을 삭제합니다. 여기서 상대 경로를 사용하고 있으므로test_dir은 Python 프로그램과 동일한 루트 폴더에 있어야합니다. 절대 파일 경로를 사용할 수도 있습니다.

import os

os.unlink("test_dir/main.py")

또한test_dir 내에있는main.py라는 파일도 삭제합니다.

두 기능 모두 파일을 삭제할 수만 있습니다. 삭제할 디렉토리의 경로를 제공하면 IsADirectoryError 오류가 발생합니다.

마찬가지로 지정된 경로에 파일이 없으면FileNotFoundError가 발생합니다.

파일을 삭제할 권한이 없으면 PermissionError오류가 발생합니다.

파일을 삭제하는 동안 이러한 오류를 해결하려면 예외 처리를 사용해야합니다.

import os

try:
    os.remove("test_dir/main.py")
except OSError as e:
    print(f"Error:{ e.strerror}")

출력:

Error:No such file or directory

그러한 파일이 없으면 전체 프로그램이 충돌하지 않고 출력에 오류가 인쇄됩니다.

Python에서pathlib 모듈을 사용하여 파일 삭제

pathlib 모듈을 사용하여 파일을 제거하려면 먼저pathlib 모듈에 정의 된Path 객체를 만듭니다. 그런 다음 unlink()메서드를 사용하여 파일을 삭제합니다.

from pathlib import Path

filePath = Path("test_dir/main.py")

try:
    filePath.unlink()
except OSError as e:
    print(f"Error:{ e.strerror}")

여기서는 삭제할 파일의 위치로Path 클래스에서filePath 객체를 인스턴스화합니다.

pathlib 모듈은 Python 3.4 이상에서만 사용할 수 있습니다. Python 2의 경우pip를 사용하여 모듈을 설치해야합니다.

Python에서 패턴 일치를 사용하여 파일 삭제

glob 모듈을 사용하여 파일의 패턴을 일치시킬 수 있으며 패턴과 일치하는 모든 파일을 수집 한 후 위에 지정된 방법 중 하나를 사용하여 모든 파일을 삭제할 수 있습니다.

import os
import glob

py_files = glob.glob("test_dir/*.py")

for py_file in py_files:
    try:
        os.remove(py_file)
    except OSError as e:
        print(f"Error:{ e.strerror}")

그러면.py 확장자를 가진test_dir 디렉토리의 모든 파일이 삭제됩니다.

Python os 모듈을 사용하여 디렉토리 삭제

Python을 사용하여 디렉토리를 삭제하려면 os,pathlibshutlib 디렉토리를 사용할 수 있습니다. ospathlib는 빈 디렉토리 만 삭제할 수있는 반면shutlib는 비어 있지 않은 디렉토리도 삭제할 수 있습니다.

import os

dirPath = "test_dir"

try:
    os.rmdir(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

현재 작업 디렉토리에서 빈 디렉토리test_dir을 삭제합니다.

Python pathlib 모듈을 사용하여 디렉토리 삭제

디렉토리가 비어 있지 않으면이 방법을 사용하여 디렉토리를 제거 할 수 없습니다. 프로그램에서 Error : Directory not empty라는 출력을 얻습니다.

비어 있지 않은 디렉토리를 제거하기 위해pathlib 모듈을 사용할 수도 있습니다.

from pathlib import Path

dirPath = Path("test_dir")

try:
    dirPath.rmdir()
except OSError as e:
    print(f"Error:{ e.strerror}")

또한 현재 작업 디렉토리에서 빈 디렉토리test_dir을 삭제합니다.

Python shutil.rmtree 메서드를 사용하여 비어 있지 않은 디렉터리 삭제

Python을 사용하여 비어 있지 않은 디렉토리를 삭제하려면shutil 모듈에서rmtree 메소드를 사용합니다.

import shutil

dirPath = "test_dir"

try:
    shutil.rmtree(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

현재 작업 디렉토리와 모든 내용에서test_dir 디렉토리를 삭제합니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Python File

관련 문장 - Python Directory