이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.

풀어 주다: 2023-07-25 14:27:16
앞으로
1785명이 탐색했습니다.

1. 피클 모듈이란?

지속성 모듈이란 무엇인가요?

지속성 모듈: 데이터를 지속성 있게 만드는 것입니다.

피클 모듈은 사용자 정의 클래스를 포함한 다양한 데이터를 유지할 수 있는 Python 전용 지속성 모듈로, Python 자체에서 복잡한 데이터를 저장하는 데 더 적합합니다.

그러나 지속된 문자열은 읽을 수 없으며 Python 환경에서만 사용할 수 있으며 다른 언어와의 데이터 교환에는 사용할 수 없습니다.


2. 피클 모듈의 역할

Python 객체를 먼저 문자열로 변환한 다음 저장하지 않고 파일에 직접 저장하거나 기본 파일 액세스 작업을 사용하여 바이너리로 직접 작성합니다. 파일. pickle 모듈은 Python 언어에 특정한 바이너리 형식을 생성합니다. 이는 사용자가 파일 세부 사항을 고려할 필요가 없으며 객체 읽기 및 쓰기 작업을 완료하는 데 도움이 됩니다. pickle을 사용하면 파일을 열고 데이터 형식을 변환하고 작성하는 것보다 많은 코드 라인이 절약됩니다.

ㅋㅋㅋ


파일을 읽고 쓸 때 rb 또는 wb 모드를 사용하세요. 이는 바이트 형식의 데이터만 수신한다는 의미입니다.

1.pickle.dump(obj, file)

Python 데이터를 피클 형식 파일로 변환하여 저장합니다.

with open('data.pickle', 'wb') as f:
    pickle.dump(data, f)
로그인 후 복사
위에 저장된 데이터 파일을 텍스트 편집기로 열어보면 모두 읽을 수 없는 인코딩임을 알 수 있습니다. 실행 결과:

2. pickle.dumps(obj)

将Python数据转换为pickle格式的bytes字串。

import pickle
dic = {"k1":"v1","k2":123}
s = pickle.dumps(dic)
print(s)
로그인 후 복사

运行结果:

이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.

3. pickle.load(file)

从pickle格式的文件中读取数据并转换为Python的类型。

with open('data.pickle', 'rb') as f:
    data = pickle.load(f)
로그인 후 복사

4. pickle.loads(bytes_object)

将pickle格式的bytes字串转换为Python的类型。

import pickle
dic = {"k1":"v1","k2":123}
s = pickle.dumps(dic)
dic2 = pickle.loads(s)
print(dic2)
로그인 후 복사

运行结果:

이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.


四、项目演示

例1:

import pickle


with open('data.pickle', 'rb') as f:
    data = pickle.load(f)
로그인 후 복사

.picklle 格式的文件,用记事本打开是乱码。

运行结果:

이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.


例2

Pickle可以持久化Python的自定义数据类型,但是在反持久化的时候,必须能够读取到类的定义

import pickle


class Person:
    def __init__(self, n, a):
        self.name = n
        self.age = a


    def show(self):
        print(self.name+"_"+str(self.age))


aa = Person("张三", 20)
aa.show()
f = open('2.txt', 'wb')
pickle.dump(aa, f)
f.close()
# del Person        # 注意这行被注释了
f = open('2.txt', 'rb')
bb = pickle.load(f)
f.close()
bb.show()
로그인 후 복사

运行结果:

이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.

취소하는 경우 del Persondel Person这一行的注释,在代码中删除了Person类的定义,那么后面的load()이 줄의 주석은 코드에서 Person 클래스의 정의를 삭제한 후 다음 load()

메소드를 사용하면 오류가 발생합니다. 이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.


5. 요약

🎜이 글에서는 주로 Python의 피클 모듈을 소개하고, 모듈의 주요 메소드에 대해 자세히 소개합니다. 🎜🎜

위 내용은 이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:Go语言进阶学习
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!