75. 파이썬 shutil, glob, pickle 표준 라이브러리

  • 네이버 블로그 공유하기
  • 카카오톡 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기

지난 시간에 파이썬 표준 라이브러리 중 operator.itemgetter 와 operator.attrgetter 에 대해 알아보았습니다.
이번 포스팅에서는 shutil, glob, pickle 라이브러리에 대해 공부해 보도록 하겠습니다.

파이썬 표준 라이브러리

shutil

shutil.copy 파일 백업

shutil 라이브러리는 파일을 복사하거나 이동 할 때 사용하는 모듈입니다.
우리가 작업 중인 파일이 있는데 이 파일을 자동으로 백업하는 기능을 파이썬 프로그램으로 코딩한다고 했을 때 d:\test\aaa.txt 파일을 d:\temp\aaa.txt.bak 라고 복사한다고 해봤을 때 shutil 모듈을 사용해 해결 할 수 있습니다.
단, d:\temp 디렉터리는 이미 만들어져 있고, d:\test\aaa.txt 파일은 만드는 중이라는 조건입니다.
아래 코드는 shutil 모듈을 사용해 aaa.txt 파일을 백업하는 코드 입니다.

Python
#  shutil_copy.py
import shutil

shutil.copy("d:/test/aaa.txt", "d:/temp/aaa.txt.bak")

shutil.move 휴지통으로 삭제

만약에 d:\test\aaa.txt 파일을 복사 방식으로 백업 하는게 아닌 d:\temp\aaa.txt 로 이동을 하게 되면 아래와 같이 shutil.move 코드를 사용하면 됩니다.

Python
#  shutil_move.py
import shutil

shutil.move("d:/test/aaa.txt", "d:/temp/aaa.txt")

glob

프로그래밍을 하다가 보면 파일을 읽고 쓰는 기능이 있는 프로그램을 만들 때도 있습니다.
그 중에서 특정한 디렉터리에 있는 파일들의 이름을 전부 확인하고자 할 때 사용하는 모듈이 바로 glob 입니다.

glob(pathname) 디렉터리에 있는 파일들 리스트 만들기

일단 기본적으로 glob 모듈은 디렉터리 안에 있는 파일들을 읽어서 리턴을 해줍니다.
* 이나 ? 등의 메타 문자를 써서 원하는 파일들만 읽어서 리턴을 할 수도 있습니다.
아래 코드는 d:/test 디렉터리에 있는 파일들 중에서 이름이 mark 로 시작하는 파일들을 모두 찾아서 읽어들이는 코드 입니다.

Python
>>> import glob
>>> glob.glob("d:/test/mark*")
['d:/test\\mark1.py', 'd:/test\\mark2.py', 'd:/test\\mark3.py']
>>>

pickle

pickle 모듈은 객체의 형태를 원형대로 유지하면서 파일에 저장하고 저장한 파일을 불러올 수 있도록 해 주는 모듈입니다.

pickle.dump

아래 코드는 pickle 모듈의 dump 함수를 사용해서 딕셔너리 객체인 data 를 원형 그대로 파일에 저장하게 해주는 코드입니다.

Python
>>> import pickle
>>> f = open("test.txt", 'wb')
>>> data = {1: 'python', 2: 'we need'}
>>> pickle.dump(data, f)
>>> f.close()
>>>

pickle.load

아래 코드는 위에서 pickle.dump 로 저장했던 파일을 pickle.load 함수를 사용해서 원래 있던 딕셔너리 객체(data) 상태 그대로 불러와 보는 코드입니다.

Python
>>> import pickle
>>> f = open("test.txt", 'rb')
>>> data = pickle.load(f)
>>> print(data)
{1: 'python', 2: 'we need'}
>>>

결과 처럼 원형 그대로 가지고 온 걸 확인 할 수 있습니다.
방금 예제는 딕셔너리 객체만을 사용했지만 다른 어떤 자료형이든 저장하고 다시 불러올 수가 있습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
75. 파이썬 shutil, glob, pickle 표준 라이브러리

Leave a Comment