Python 에서 shutil 모듈 의 학습 노트 튜 토리 얼
shutil 이름 은 셸 utilities 에서 유래 되 었 습 니 다.리 눅 스 를 배우 거나 알 아 본 사람 은 셸 에 대해 낯 설 지 않 을 것 입 니 다.이 를 통 해 모듈 의 이름 을 기억 할 수 있 습 니 다.이 모듈 은 복사,이동,이름 바 꾸 기,삭제 등 많은 파일(클립)작업 기능 을 가지 고 있다.
1.chutil.copy(source,destination)
shutil.copy()
함수 가 파일 복사 기능 을 실현 하고 source 파일 을 destination 폴 더 에 복사 합 니 다.두 매개 변 수 는 모두 문자열 형식 입 니 다.destination 이 파일 이름 이 라면 복사 한 파일 이름 으로 사 용 됩 니 다.복사+이름 바 꾸 기 와 같 습 니 다.예 를 들 면 다음 과 같다.
>> import shutil
>> import os
>> os.chdir('C:\')
>> shutil.copy('C:\spam.txt', 'C:\delicious')
'C:\delicious\spam.txt'
>> shutil.copy('eggs.txt', 'C:\delicious\eggs2.txt')
'C:\delicious\eggs2.txt'
코드 에서 보 듯 이 이 함수 의 반환 값 은 복사 에 성공 한 문자열 형식의 파일 경로 입 니 다.2.shutil.copytree(소스,대상)
shutil.copytree()
함수 가 전체 폴 더 를 복사 하고 source 폴 더 의 모든 내용 을 destination 에 복사 합 니 다.source 안의 파일,하위 폴 더 를 포함 하여 복사 합 니 다.두 매개 변 수 는 모두 문자열 형식 입 니 다.메모:destination 폴 더 가 존재 한다 면 이 동작 은 FileExistsError 오 류 를 되 돌려 줍 니 다.알림 파일 이 존재 합 니 다.이 함 수 를 실행 하면 프로그램 이 자동 으로 새 폴 더(destination 인자)를 만 들 고 source 폴 더 의 내용 을 복사 한 다 는 뜻 이다.
예 를 들 면 다음 과 같다.
>> import shutil
>> import os
>> os.chdir('C:\')
>> shutil.copytree('C:\bacon', 'C:\bacon_backup')
\'C:\bacon_backup'
상기 코드 에서 보 듯 이 이 함수 의 반환 값 은 복사 에 성공 한 폴 더 의 절대 경로 문자열 입 니 다.그래서 이 함 수 는 백업 기능 이 라 고 할 수 있 습 니 다.
3.shutil.move(source,destination)
shutil.move()
함 수 는 source 파일 이나 폴 더 를 destination 으로 이동 합 니 다.반환 값 은 이동 후 파일 의 절대 경로 문자열 입 니 다.destination 이 폴 더 를 가리 키 면 source 파일 은 destination 으로 이동 하여 원래 이름 을 유지 합 니 다.예 를 들 면:
>> import shutil
>> shutil.move('C:\bacon.txt', 'C:\eggs')
'C:\eggs\bacon.txt'
예 를 들 어 C:\eggs 폴 더 에 같은 이름 의 파일 bacon.txt 가 존재 한다 면 이 파일 은 source 의 같은 이름 의 파일 에서 재 작성 될 것 입 니 다.destination 이 파일 을 가리 키 면 source 파일 이 이동 되 고 이름 이 바 뀝 니 다.다음 과 같 습 니 다.
>> shutil.move('C:\bacon.txt', 'C:\eggs
ew_bacon.txt')
'C:\eggs
ew_bacon.txt'
이동+이름 바 꾸 기,destination 이 폴 더 라면 접미사 가 있 는 경로 이름 이 없 으 면 source 는 이동 하여 destination로 이름 을 바 꿉 니 다.다음 과 같 습 니 다.
>> shutil.move('C:\bacon.txt', 'C:\eggs')
'C:\eggs'
즉,bacon.txt 파일 은 eggs 로 이름 이 바 뀌 었 습 니 다.파일 접미사 가 없 는 파일 입 니 다.마지막 으로 destination 폴 더 는 이미 존재 해 야 합 니 다.그렇지 않 으 면 이상 이 발생 할 수 있 습 니 다.
>> shutil.move('spam.txt', 'C:\does_not_exist\eggs\ham')
Traceback (most recent call last):
File "D:\Python36\lib\shutil.py", line 538, in move
os.rename(src, real_dst)
FileNotFoundError: [WinError 3] 。: 'test.txt' -> 'C:\does_not_exist\eggs\ham'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "
4.파일 과 폴 더 를 영구적 으로 삭제 합 니 다.여기에 os 모듈 과 관련 된 함수 가 있 습 니 다.
os.unlink(path)
path 경로 파일 을 삭제 합 니 다.os.rmdir(path)
path 경로 폴 더 를 삭제 하지만 이 폴 더 는 비어 있어 야 합 니 다.파일 이나 하위 폴 더 는 포함 되 지 않 습 니 다.shutil.rmtree(path)
path 경로 폴 더 를 삭제 하고 이 폴 더 에 있 는 모든 파일 과 하위 폴 더 가 삭 제 됩 니 다.함 수 를 이용 하여 삭제 작업 을 수행 할 때 더욱 신중 해 야 합 니 다.txt 파일 을 삭제 하려 고 하 다가 rxt 에 쓰 면 자신 에 게 번 거 로 움 을 줄 수 있 기 때 문 입 니 다.
이 때,우 리 는 문자열 의 endswith 속성 을 이용 하여 파일 형식 을 검사 하고 선별 할 수 있다
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.