[python] 14. 파일과 디렉터리 다루기 및 zip모듈
1. pickle 모듈
- 메모리에 있는 데이터 구조를 그대로 파일에 쓰는 방법을 제공한다.
- 리스트나 클래스를 파일에 바로 저장하는 것을 Object Srialize라고 한다.
- 작업한 내용을 저장할 때 사용 할 수 있다.
- open 모드를 'wb' 로하고 pickle.dump()함수를 이용하여 파일에 쓴다.
2. shutil(Shell utils) 모듈
- 파일이나 디렉터리를 복사, 이동, rename, 삭제를 수행하는 모듈
1) 복사
- shutil.copy(source, destination)
2) 이동
- shutil.move(source, destination)
- destination의 파일이 존재하면 move가 안된다.
3) 영구 삭제
(1) 파일 삭제
- os.unlink(path) / os.remove(path)
(2) 디렉토리 삭제
- os.rmdir(path)
- 단, 해당 경로가 비어 있어야 한다.
(3) 강제 삭제
- shutil.rmtree(path)
- 경로가 비어있지 않아도 모든 파일이 삭제됨
3. send2trash 모듈(안전한 삭제, 쓰레기통을 이용한 삭제)
1) 설치 방법
- pip install send2trash
2) 모듈 명
- send2trash
3) 동작 방식
- 삭제된 파일이나 디렉터리를 운영체제의 휴지통으로 보낸다.
- 완전한 삭제가 아니라 나중에 복원이 가능하다.
4) 사용법
- send2trash.send2trash('파일명')
4. 디렉터리 순회 방법
1) 하위 디렉터리 순회
- os.walk('기준 디렉터리') 함수를 이용한다.
2) 예제
- folder_name : 현재 디렉토리 이름
- subforders : 하위 디렉토리들
- filenames : 파일 이름들
5. zip파일 읽기
1) 사용 모듈
- zipfile
2) 사용 방법
(1) zip파일 내부읽기
- zip파일 객체를 만든후에 사용한다.
- namelist()를 사용 한다.
(2) zip파일 압축 해제
- zip파일 객체를 만든후에 사용한다.
- extractall() : 현재 디렉터리에 파일과 디렉터리 압축 해제
- extract(file_name) : 해당 파일만 압축 해제
(3) zip파일 압축 하기
- zip파일 객체를 만들대 'w' 옵션을 부여 한다.
- ZIP파일을 만드는다는 것은 zip파일에 압출할 파일을 계속 write 하는 것이다.
- write할때는 압출 알고리즘을 선택 할 수 있다.(생략가능)
아래코드에서는 ZIP_DEFLATED 알고리즘을 사용한다.
A. 새로 집파일을 만드는 방법
- 'w' 모드는 파일이 새로 만들어지며 , 기존 파일있으면 내용이 모두 지워진다.
B. ZIp파일에 파일 추가한는 방법
- 'a' 모드를 사용하면 컨텐츠를 추가 할 수 있다.
'ProgrammingLang > python' 카테고리의 다른 글
[python] 16. class 와 객체 (0) | 2018.11.21 |
---|---|
[python] 15. 예외처리와 로깅 (0) | 2018.11.17 |
[python] 13. 파일 다루기 (0) | 2018.11.15 |
[python] 12. 정규 표현식 2 - search(), findall (0) | 2018.11.15 |
[python] 11. 정규 표현식 1 (0) | 2018.11.14 |