Python3使用pickle模块读写二进制文件
在本文中,我们将深入探讨如何使用Python中的pickle模块进行读写二进制文件的操作。Python的文件I/O通常只支持文本类型的读写,即使以二进制方式打开文件也是如此。若需写入二进制数据,则必须借助pickle模块或struct模块。pickle模块可以直接序列化几乎所有Python对象,但需要注意的是,其他编程语言要读取经过pickle序列化的文件,则需要遵循相同的协议。如果希望Python与其他语言的程序进行二进制文件交互,建议考虑使用struct模块。喜欢本教程请投上您宝贵的一票,谢谢支持!同时也欢迎关注我,每天都有新鲜干货教程哦!
步骤一:新建Python源代码文件
1. 启动IDLE程序(确保已安装Python3),点击界面菜单中的“File > New File”,创建一个空白的Python源代码文件。
2. 在新打开的Python编辑器窗口中,按下“Ctrl S”,将文件命名为“pickle_file”并保存到“D: est”目录下。
3. 在“pickle_”编辑窗口中,定义3个列表,分别保存3条学生信息。然后,定义一个表示文件路径的格式化字符串,该字符串可以自定义文件扩展名。
步骤二:使用write()函数写入数据
4. 继续编辑源代码,使用write()函数将“zsInfo”中的四个元素写入到“pickle1.dat”文件中(如对try..except和with不熟悉,可参考“[Python3]写入文本文件[TZZ]”)。运行代码时,打开二进制文件只需指定模式为“wb”即可。write()方法只支持类byte格式的数据,因此需使用encode()方法转换字符串为bytes类型或者使用bytes()构造一个bytes对象。
文件验证与pickle模块基本用法
5. 在“D: est”目录下,使用记事本打开创建的“pickle1.dat”文件,会发现尽管以二进制方式打开并写入内容,实际上它仍然是文本文件。这表明Python的write()方法实际上写入的还是字符串,即使类型是bytes。
6. 为了以二进制方式保存数据到文件,Python提供了pickle模块。通过dump()方法可将Python对象以二进制形式写入,而load()方法可读取通过dump()写入的对象。
使用pickle模块写入与读取数据
7. 掌握了pickle模块的基本用法后,继续向源代码中添加使用pickle模块的dump()方法写入学生信息的代码,并运行。若在调用dump()保存数据时出现错误,会抛出pickle.PickleError异常。
8. 再次进入“D: est”目录,使用记事本打开新创建的“pickle2.dat”文件,这次文件内容显示为乱码,这正是二进制写入内容的特征。证明一切顺利进行。
读取pickle2.dat文件并总结
9. 继续向源代码中添加使用pickle.load()方法读取“pickle2.dat”文件的代码,随后运行。如果代码正确,Shell窗口中将打印出学生信息。通过与定义的学生信息核对,可以确认读取无误。
10. 通过pickle模块写入的二进制文件,只能通过pickle模块读取,这是其限制。若需与其他编程语言的程序通过文件交互,需要借助struct模块。接下来,我们将介绍struct模块的用法。祝学习愉快!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。