본문 바로가기
언어/Python

[Python 기본 공부정리] 13-1. 라이브러리(library)

by 민-Zero 2020. 1. 12.

공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다.

틀린 부분에 대한 지적은 감사합니다.

라이브러리(library)란?

라이브러리는 필요한 코드를 재사용하기 위해 언제든지 필요한 곳에서 호출할 수 있도록 개발자들에 의해서 이미 만들어진 클래스나 함수를 모아놓은 것을 말한다. 이러한 라이브러리들을 외장 함수라고도 하며 모듈과 동일한 의미이다. 

파이썬 라이브러리는 파이썬 설치 시 자동으로 컴퓨터에 파이썬 디렉토리 안의 lib라는 곳에 설치가 된다. 모듈과 동일한 의미의 라이브러리는 모듈을 사용할 때처럼 import 하여 원하는 기능을 꺼내 쓰면 된다.

굉장히 많은 양의 라이브러리가 존재하기 때문에 모든 라이브러리를 전부 외우고 있을 수는 없다. 필요할 때 검색하여 사용하면 되고 자주 사용되는 몇 가지는 알아두면 편하기 때문에 자주 사용되는 라이브러리 몇 가지를 정리하자.

 

1. sys

sys 라이브러리는 파이썬의 인터프리터와 관련되어있다. 인터프리터가 제공하는 변수와 함수를 제어할 수 있게 해 준다.

포함된 함수 몇 가지를 정리하면

sys.argv : sys.argv에 명령행의 인수들을 리스트 형태로 전달한다. 

cmd에서 python을 실행해 확인해 보면 argv에 입력한 명령행의 인수들(./study.py aa bb cc)을 리스트에 저장하고 study.py에 작성한 print(sys.argv)가 동작하여 출력해주는 것을 확인할 수 있다.

 

sys.exit() : ctrl+z 윈도우환경, ctrl+d 유닉스 환경을 눌러서 대화형 인터프러터(shell)를 종료하는 기능과 같다.

해당 함수를 입력할 경우 파이썬 인터프리터가 종료된다.

다음처럼 exit() 함수가 작성된 파일을 import 할 경우 파이썬 인터프리터가 바로 종료되는 것을 확인할 수 있다.

 

sys.path : 파이썬 모듈이 저장된 위치를 리스트 형태로 가지고 있어 모듈을 불러올 때 이곳에 있는 경로에서 모듈을 찾게 된다. 따라서 자신이 만든 모듈을 불러서 사용하기 위해 이곳에 위치를 지정한다. 

파이썬이 import 할 때 찾는 경로들이 리스트 형태로 저장되어 있다. 첫 번째의 ''은 현재 위치한 디렉토리를 뜻한다. 리스트로 저장되어 있기 때문에 직접 만든 모듈을 사용하고자 한다면 리스트에 요소를 추가하는 함수인 append함수를 사용하여 경로를 추가하면 된다. 

직접 입력한 C:\\Study라는 경로가 추가되어 import를 사용할 때 해당 디렉토리에서도 검색하기 때문에 해당 위치에 모듈을 저장해 놓으면 사용할 수 있게 된다. \\(역 슬래쉬)를 두 번 사용하는 이유는 \s라는 제어문자가 존재할 수 있기 때문에 역슬래쉬 자체를 제어문자가 아닌 문자열로 인식시키기 위해 두 번 입력하는 것이다. 다른 경로를 확인해보면 전부 두 번씩 작성된 것을 확인할 수 있다.

 

sys.modules : 현재 불러와있는 모듈들을 딕셔너리 형태로 가지고 있다.

직접 import 한 sys모듈 말고도 많은 모듈이 불러와져 있는 것을 확인할 수 있다.

 

2. pickle

일반 텍스트 같은 경우 일반적인 파일 입출력에서 하던 대로 write, readline 등을 이용하여 파일에 저장하고 불러올 수 있지만 객체의 경우는 파일에 그대로 저장하기 위해선 다른 방법이 필요하다. 이때 사용하는 라이브러리가 pickle라이브러리이다. pickle은 객체의 형태를 그대로 유지해서 파일에 저장시키고, 불러올 수 있게 하는 라이브러리이다. 바이너리 형태로 저장한다.
pickle 이용해서 파일에 저장 및 조회할 때는 꼭 바이너리 처리를 해야 한다. b를 입력해서 바이너리라는 것을 표시해야 한다.

 

pickle.dump(object, file) : dump에 인수로 전달한 객체를 객체 상태 그대로 파일에 저장해주는 함수이다.

해당 파일을 확인해 보면 입력한 객체가 바이너리 형태로 저장되어 있는 것을 확인할 수 있다.

 

pickle.load(object) : dump로 파일에 저장된 객체를 원래의 객체 상태로 불러오는 함수이다.

  해당 파일에 저장한 리스트 객체를 load함수를 이용하여 불러와 A_list에 저장한 모습이다. pickle.dump를 이용해 저장한 파일만 불러올 수 있다.

댓글