>  기사  >  백엔드 개발  >  이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.

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

Go语言进阶学习
Go语言进阶学习앞으로
2023-07-25 14:27:161813검색

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으로 문의하시기 바랍니다. 삭제