SW/Python

Python : 파일, 디렉토리, 폴더 삭제 방법, 예제, 명령어

얇은생각 2022. 6. 24. 07:30
반응형

파이썬에는 파일 및 디렉터리를 삭제할 수 있는 몇 가지 기본 제공 모듈이 있습니다.

이 튜토리얼에서는 OS, pathlib 및 shutil 모듈에서 함수를 사용하여 파일 및 디렉토리를 삭제하는 방법에 대해 설명합니다.

 

Python : 파일, 디렉토리, 폴더 삭제 방법, 예제, 명령어

 

 

파일을 삭제

파이썬에서는 os.remove(), os.unlink(), pathlib을 사용할 수 있습니다.단일 파일을 삭제하려면 Path.link()를 해제합니다. 

OS 모듈은 운영 체제와 상호 작용하는 휴대용 방법을 제공합니다. 이 모듈은 파이썬 2와 3 모두에서 사용할 수 있습니다. 

os.remove()인 단일 파일을 삭제하려면 다음 인수로 파일에 경로를 전달합니다.

import os

file_path = '/tmp/file.txt'
os.remove(file_path)

 

 

os.remove 함수와 os.unlink 함수는 의미론적으로 동일합니다.

import os

file_path = '/tmp/file.txt'
os.unlink(file_path)

 

 

지정한 파일이 없으면 FileNotFoundError 오류가 발생합니다. os.remove()와 os.unlink()는 모두 디렉토리가 아닌 파일만 삭제할 수 있습니다. 지정된 경로가 디렉토리를 가리키면 IsADirectoryError 오류가 표시됩니다.

파일을 삭제하려면 파일이 포함된 디렉터리에 대한 쓰기 및 실행 권한이 필요합니다. 그렇지 않으면 PermissionError 오류가 발생합니다.

파일을 삭제할 때 오류를 방지하려면 예외 처리를 사용하여 예외를 포착하고 적절한 오류 메시지를 보낼 수 있습니다.

import os

file_path = '/tmp/file.txt'

try:
    os.remove(file_path)
except OSError as e:
    print("Error: %s : %s" % (file_path, e.strerror))

 

 

pathlib 모듈은 파이썬 3.4 이상에서 사용할 수 있습니다. 파이썬 2에서 이 모듈을 사용하려면 pip와 함께 설치하면 됩니다. pathlib은 서로 다른 운영 체제의 파일 시스템 경로 작업을 위한 객체 지향 인터페이스를 제공합니다.

pathlib 모듈이 있는 파일을 삭제하려면 파일을 가리키는 경로 개체를 만들고 개체에 대한 링크 해제() 메서드를 호출합니다. 

pathlib에서 가져오기 경로입니다.

from pathlib import Path

file_path = Path('/tmp/file.txt')

try:
    file_path.unlink()
except OSError as e:
    print("Error: %s : %s" % (file_path, e.strerror))

 

 

pathlib이 있습니다.path.unlink(), os.remove() 및 os.unlink()를 사용하여 심볼 링크를 삭제할 수도 있습니다.

 

 

 

패턴이 일치

전역 모듈을 사용하여 패턴을 기준으로 여러 파일을 일치시킬 수 있습니다. 예를 들어 /tmp 디렉터리에서 모든 .txt 파일을 제거하려면 다음과 같은 방법을 사용합니다.

import os
import glob

files = glob.glob('/tmp/*.txt')

for f in files:
    try:
        f.unlink()
    except OSError as e:
        print("Error: %s : %s" % (f, e.strerror))

 

 

/tmp 디렉토리의 모든 .txt 파일과 그 아래의 모든 하위 디렉토리를 재귀적으로 삭제하려면 recursive=True를 전달합니다. glob() 함수에 ''**'' 패턴을 사용합니다.

import os
import glob

files = glob.glob('/tmp/**/*.txt', recursive=True)

for f in files:
    try:
        os.remove(f)
    except OSError as e:
        print("Error: %s : %s" % (f, e.strerror))

 

 

pathlib 모듈에는 지정된 디렉터리의 파일을 일치시키는 glob()과 rglob()의 두 가지 글로벌 함수가 있습니다. glob()은 최상위 디렉터리의 파일만 일치합니다. rglob()은 디렉터리의 모든 파일과 모든 하위 디렉터리에 재귀적으로 일치합니다. 다음 예제 코드는 /tmp 디렉터리의 모든 .txt 파일을 삭제합니다.

from pathlib import Path

for f in Path('/tmp').glob('*.txt'):
    try:
        f.unlink()
    except OSError as e:
        print("Error: %s : %s" % (f, e.strerror))

 

 

 

디렉터리(폴더)를 삭제

파이썬에서는 os.rmdir() 및 pathlib을 사용할 수 있습니다.경로.rmdir()는 빈 디렉토리를 삭제하고 shutil.rmtree()는 비어 있지 않은 디렉토리를 삭제합니다.

다음 예에서는 빈 디렉터리를 제거하는 방법을 보여 줍니다.

import os

dir_path = '/tmp/img'

try:
    os.rmdir(dir_path)
except OSError as e:
    print("Error: %s : %s" % (dir_path, e.strerror))

 

 

또는 pathlib 모듈을 사용하여 디렉토리를 삭제할 수 있습니다.

from pathlib import Path

dir_path = Path('/tmp/img')

try:
    dir_path.rmdir()
except OSError as e:
    print("Error: %s : %s" % (dir_path, e.strerror))

 

 

shutil 모듈을 사용하면 파일 및 디렉터리에 대해 여러 가지 고급 작업을 수행할 수 있습니다.

shutil.rmtree() 함수를 사용하여 다음을 포함하여 지정된 디렉토리를 삭제할 수 있습니다.

import shutil

dir_path = '/tmp/img'

try:
    shutil.rmtree(dir_path)
except OSError as e:
    print("Error: %s : %s" % (dir_path, e.strerror))

 

 

shutil.rmtree()에 전달된 인수는 디렉터리에 대한 심볼 링크일 수 없습니다.

파이썬은 파일 처리를 위한 여러 모듈을 제공합니다.

os.remove() , os.unlink() , pathlib을 사용하는 방법을 보여드렸습니다.단일 파일, os.rmdir() 및 pathlib을 삭제하려면 path.link()를 해제합니다.경로.rmdir()는 빈 디렉토리를 삭제하고 shutil.rmtree()는 디렉토리와 디렉토리의 모든 내용을 재귀적으로 삭제합니다.

파일 또는 디렉터리를 제거할 때 특히 주의하십시오. 파일이 삭제되면 쉽게 복구할 수 없습니다.

반응형