Corgi Dog Bark

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
      

       

      실행 결과 


      반응형

      댓글

    Designed by Tistory.