-
Python_pickle[피클 이란?]머신러닝(MACHINE LEARNING) 2021. 4. 18. 19:22반응형
목차
피클[Pickle] 모듈
- 피클 모듈 이란, 파일을 저장시, 리스트[List], 클래스[Class] 등을 저장 할 수 있도록 도와 주는 모듈이다.
- 예를 들어, colors=['red','green','black'] 이라는 리스트가 있을시, f.write()으로 저장하게 된다면, 오류가 나올 것이다. 따라서 pickle 이라는 모듈을 통해 이진수로 변형한뒤 저장하는 방법을 주로 쓴다.
- 간단한 에시를 통해 알아보자.
예시
우선 파일을 열기 전에, import pickle 을 통하여, pickle 모듈을 불러와주고, dump 라는 모듈을 통해, 파일에 원하는 변수를 입력시킨다.
pickle.dump(obj, file, protocol=None, *, fix_imports=True, buffer_callback=None) 가 Pickle.dump의 명세서 인데, obj 에 원하는 변수 , file에는 파일명을 적어주면 된다.
import pickle # 데이터를 사용자가 직접 입력한다. number_of_data = int(input('Enter the number of data : ')) data = [] # data 라는 리스트 내부에 사용자의 입력 받기 for i in range(number_of_data): raw = input('Enter data '+str(i)+' : ') data.append(raw) # file 을 열때, 'wb' 모드를 썻는데, write 그리고 binary_mode 를 뜯한다. file = open('important', 'wb') # 파일에 data를 dump 시키는데, 위에서 설명했듯이, obj에 data리스트를 그리고 file명에는 원하는 file 이름을 집어넣는다. pickle.dump(data, file) # 최종적으로 file을 닫아준다. file.close()
자, 여기 까지 생성했으면, 나의 현위치 폴더에 important라는 파일이 생길 것인데, 파일을 열때, 파일 내부의 값을 이진수로 바꿔줘야 하기 때문에, 제대로 인시하지 않을 것이다.[즉 binary_mode 로 파일을 읽어줘야 한다. str 처럼 스트링이 아니기 때문에.]
그럼 이제, 파일을 읽어보자.
import pickle # 파일을 읽을 시, open mode 에 'read' 그리고 'binary_mode' 를 사용하여 'rb'로 읽어준다. file = open('important', 'rb') # pickle 모듈을 사용해 file을 로딩한다. data = pickle.load(file) # 파일을 닫고, data에 원하는 변수들이 저장되어 있을 것이다. file.close() print('Showing the pickled data:') cnt = 0 for item in data: print('The data ', cnt, ' is : ', item) cnt += 1
실행 결과
반응형'머신러닝(MACHINE LEARNING)' 카테고리의 다른 글
LightGBM 데이터 분류 (0) 2021.04.14 XGboost (Ensemble 학습법) (0) 2021.04.14 GridSearchCV () - 파라매터 와 교차검증을 동시에 하는 API (0) 2021.04.13 교차 검증을 위한 Cross_val_score() 함수 사용법 (0) 2021.04.13 K-Fold 와 Stratified-KFold 기법 (2) 2021.04.13