Python 에서 shutil 모듈 의 학습 노트 튜 토리 얼

3770 단어 pythonshutil 모듈
소개 하 다.
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 속성 을 이용 하여 파일 형식 을 검사 하고 선별 할 수 있다
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기