[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] 파이썬 list, tuple, dictionary,set 예제 및 총정리