Python

[Python] 파이썬 디렉토리 및 파일 전체를 복사 또는 일괄 삭제하는 방법shutil.copytree(), shutil.rmtree()

shutil.copytree()함수를 사용하여 디렉토리(Directory)안에 있는 파일(file)과 디렉토리를 모두 포함하여 복사합니다. 

import shutil

path = os.path.dirname("C:python/")

#python폴더 전체를 python2로 복사하기
shutil.copytree("C:python/", "C:python2/")

#실행결과
'C:\python2/'

#리스트 조회
os.listdir("C:python2/")

#실행결과
['script', 'test', 'test_Bak - 복사본', 'Workspace', '새파일.txt']

 

동일한 경로로 복사를 시도하는 경우 오류가 발생합니다. : 파일이 이미 있으므로 만들 수 없습니다.

즉, 이미 폴더가 존재하면 오류가 발생합니다. 그럼으로 디렉토리 생성과 동시에 파일을 복사할때 사용하여야 합니다.

>>> shutil.copytree("C:python/", "C:python2/")


#실행결과
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:UsersilikeAppDataLocalProgramsPythonPython39libshutil.py", line 554, in copytree
    return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
  File "C:UsersilikeAppDataLocalProgramsPythonPython39libshutil.py", line 455, in _copytree
    os.makedirs(dst, exist_ok=dirs_exist_ok)
  File "C:UsersilikeAppDataLocalProgramsPythonPython39libos.py", line 225, in makedirs
    mkdir(name, mode)
FileExistsError: [WinError 183] 파일이 이미 있으므로 만들 수 없습니다: 'C:\python2/'
>>>

 

디렉토리 및 파일 전체를 일괄 삭제하는 방법은 shutil.rmtree()함수를 사용합니다.

import shutil

path = os.path.dirname("C:python/2")
 
#리스트 조회
os.listdir("C:python2/")

#실행결과
['script', 'test', 'test_Bak - 복사본', 'Workspace', '새파일.txt']


shutil.rmtree("C:python2/")

 

삭제 완료 후 다시한번 실행하면 오류가 발생됩니다. : 지정된 경로를 찾을 수 없습니다

>>> 
>>> shutil.rmtree("C:python2/")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:UsersilikeAppDataLocalProgramsPythonPython39libshutil.py", line 737, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "C:UsersilikeAppDataLocalProgramsPythonPython39libshutil.py", line 596, in _rmtree_unsafe
    onerror(os.scandir, path, sys.exc_info())
  File "C:UsersilikeAppDataLocalProgramsPythonPython39libshutil.py", line 593, in _rmtree_unsafe
    with os.scandir(path) as scandir_it:
FileNotFoundError: [WinError 3] 지정된 경로를 찾을 수 없습니다: 'C:\python2/'
>>>

 

[REFERENCE]

docs.python.org/3/library/shutil.html?highlight=copytree#shutil.copytree

 

[파이썬 더 알아보기]

[프로그래밍/Python] – [Python] 파이썬 파일 및 디렉토리(폴더) 삭제방법 : 파일, 디렉토리 무조건 삭제 하는 방법 : shutil , os

[프로그래밍/Python] – [Python] 파이썬 파일(디렉토리)처리 총정리: 경로 확인,경로 변경, 파일이름 변경

[프로그래밍/Python] – [Python] 파이썬 랜덤 숫자 뽑기 난수 발생(random) 예제 총정리 : randint(), randrange(), uniform(), shuffle(), choice(), choices(), simple()

[프로그래밍/Python] – [Python] 파이썬 list, tuple, dictionary,set 예제 및 총정리

[프로그래밍/Python] – [Python] 파이썬 문자열 함수 사용 예제 및 총정리 : split,join,replace,rstrip,lstrip,lower,upper,index,count,len

[프로그래밍/Python] – [Python] 파이썬 기본(기초) 문법 : 예제 및 총정리

Leave a Reply

error: Content is protected !!