지속성 모듈: 데이터를 지속성 있게 만드는 것입니다.
피클 모듈은 사용자 정의 클래스를 포함한 다양한 데이터를 유지할 수 있는 Python 전용 지속성 모듈로, Python 자체에서 복잡한 데이터를 저장하는 데 더 적합합니다.
그러나 지속된 문자열은 읽을 수 없으며 Python 환경에서만 사용할 수 있으며 다른 언어와의 데이터 교환에는 사용할 수 없습니다.
Python 객체를 먼저 문자열로 변환한 다음 저장하지 않고 파일에 직접 저장하거나 기본 파일 액세스 작업을 사용하여 바이너리로 직접 작성합니다. 파일. pickle 모듈은 Python 언어에 특정한 바이너리 형식을 생성합니다. 이는 사용자가 파일 세부 사항을 고려할 필요가 없으며 객체 읽기 및 쓰기 작업을 완료하는 데 도움이 됩니다. pickle을 사용하면 파일을 열고 데이터 형식을 변환하고 작성하는 것보다 많은 코드 라인이 절약됩니다.
ㅋㅋㅋ
파일을 읽고 쓸 때 rb 또는 wb 모드를 사용하세요. 이는 바이트 형식의 데이터만 수신한다는 의미입니다.
Python 데이터를 피클 형식 파일로 변환하여 저장합니다. with open('data.pickle', 'wb') as f:
pickle.dump(data, f)
위에 저장된 데이터 파일을 텍스트 편집기로 열어보면 모두 읽을 수 없는 인코딩임을 알 수 있습니다. 실행 결과:
将Python数据转换为pickle格式的bytes字串。
import pickle dic = {"k1":"v1","k2":123} s = pickle.dumps(dic) print(s)
运行结果:
3. pickle.load(file)
从pickle格式的文件中读取数据并转换为Python的类型。
with open('data.pickle', 'rb') as f: data = pickle.load(f)
将pickle格式的bytes字串转换为Python的类型。
import pickle dic = {"k1":"v1","k2":123} s = pickle.dumps(dic) dic2 = pickle.loads(s) print(dic2)
运行结果:
import pickle with open('data.pickle', 'rb') as f: data = pickle.load(f)
.picklle 格式的文件,用记事本打开是乱码。
运行结果:
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()
运行结果:
취소하는 경우 del Person
del Person
这一行的注释,在代码中删除了Person类的定义,那么后面的load()
이 줄의 주석은 코드에서 Person 클래스의 정의를 삭제한 후 다음 load()
메소드를 사용하면 오류가 발생합니다.
5. 요약
🎜이 글에서는 주로 Python의 피클 모듈을 소개하고, 모듈의 주요 메소드에 대해 자세히 소개합니다. 🎜🎜위 내용은 이 기사는 Python의 피클 모듈을 이해하는 데 도움이 될 것입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!