파일 또는 폴더를 삭제하는 방법

python file-io directory delete-file


파이썬에서 파일이나 폴더를 삭제하는 방법?




Answer 1 RichieHindle



Path Python 3.4+ pathlib 모듈의 경로 객체도 다음과 같은 인스턴스 메소드를 노출합니다.




Answer 2 anand tripathi


파일을 삭제하는 Python 구문

import os
os.remove("/tmp/<file_name>.txt")

Or

import os
os.unlink("/tmp/<file_name>.txt")

Or

Python 용 pathlib 라이브러리 버전> 3.5

file_to_rem = pathlib.Path("/tmp/<file_name>.txt")
file_to_rem.unlink()

Path.unlink(missing_ok=False)

파일 또는 심볼릭 링크를 제거하는 데 사용되는 연결 해제 방법.

missing_ok가 false (기본값) 인 경우 경로가 없으면 FileNotFoundError가 발생합니다.
missing_ok가 true이면 FileNotFoundError 예외가 무시됩니다 (POSIX rm -f 명령과 동일한 동작).
버전 3.8으로 변경 : missing_ok 매개 변수가 추가되었습니다.

모범 사례

  1. 먼저 파일 또는 폴더가 있는지 확인한 다음 해당 파일 만 삭제하십시오. 이는 두 가지 방법으로 달성 할 수 있습니다.
    ㅏ. os.path.isfile("/path/to/file")
    비. exception handling. 사용하십시오 .

에 대한 os.path.isfile

#!/usr/bin/python
import os
myfile="/tmp/foo.txt"

## If file exists, delete it ##
if os.path.isfile(myfile):
    os.remove(myfile)
else:    ## Show an error ##
    print("Error: %s file not found" % myfile)

예외 처리

#!/usr/bin/python
import os

## Get input ##
myfile= raw_input("Enter file name to delete: ")

## Try to delete the file ##
try:
    os.remove(myfile)
except OSError as e:  ## if failed, report it back to the user ##
    print ("Error: %s - %s." % (e.filename, e.strerror))

개별 출력

Enter file name to delete : demo.txt
Error: demo.txt - No such file or directory.

Enter file name to delete : rrr.txt
Error: rrr.txt - Operation not permitted.

Enter file name to delete : foo.txt

폴더를 삭제하는 Python 구문

shutil.rmtree()

shutil.rmtree()

#!/usr/bin/python
import os
import sys
import shutil

# Get directory name
mydir= raw_input("Enter directory name: ")

## Try to remove tree; if failed show an error using try...except on screen
try:
    shutil.rmtree(mydir)
except OSError as e:
    print ("Error: %s - %s." % (e.filename, e.strerror))



Answer 3 Mihai Maruseac


Use

shutil.rmtree(path[, ignore_errors[, onerror]])

( 셔틀 에 대한 전체 설명서를 참조하십시오 ) 및 / 또는

os.remove

and

os.rmdir

( OS 에 대한 완전한 문서 )




Answer 4 flycee


os.removeshutil.rmtree 를 모두 사용하는 강력한 함수는 다음 과 같습니다 .

def remove(path):
    """ param <path> could either be relative or absolute. """
    if os.path.isfile(path) or os.path.islink(path):
        os.remove(path)  # remove the file
    elif os.path.isdir(path):
        shutil.rmtree(path)  # remove dir and all contains
    else:
        raise ValueError("file {} is not a file or dir.".format(path))



Answer 5 MSeifert


내장 된 pathlib 모듈을 사용할 수 있습니다 (Python 3.4 이상 필요하지만 PyPI에는 이전 버전의 백 포트가 있습니다 : pathlib , pathlib2 ).

파일을 제거하려면 unlink 메소드가 있습니다.

import pathlib
path = pathlib.Path(name_of_file)
path.unlink()

또는 폴더 를 제거하는 rmdir 방법 :

import pathlib
path = pathlib.Path(name_of_folder)
path.rmdir()