ProgrammingLang/python

[python] 14. 파일과 디렉터리 다루기 및 zip모듈

jinkwon.kim 2018. 11. 15. 23:38
728x90
반응형

[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' 모드를 사용하면 컨텐츠를 추가 할 수 있다.

  

  

  



728x90
반응형