📝 Python数据持久性教程
21篇技术文档📅  最后修改于: 2020-11-07 08:20:54        🧑  作者: Mango
在本教程中,我们将探索各种内置和第三方Python模块,以存储和检索各种格式的数据,例如文本文件,CSV,JSON和XML文件以及关系数据库和非关系数据库。本教程还介绍了ZODB数据库,这是用于Python对象的持久性API。 Microsoft Excel格式是一种非常流行的数据文件格式。在这里,我们将学习如何通过Python处理.xlsx文件。本教程适用于所有对学习有关Python的数据持久性...
📅  最后修改于: 2020-11-07 08:21:13        🧑  作者: Mango
Python概述-数据持久性在使用任何软件应用程序的过程中,用户提供一些要处理的数据。可以使用标准输入设备(键盘)或其他设备(例如磁盘文件,扫描仪,照相机,网络电缆,WiFi连接等)来输入数据。这样接收到的数据以各种数据结构(例如变量和对象)的形式存储在计算机的主存储器(RAM)中,直到应用程序运行为止。此后,RAM中的存储器内容被擦除。但是,更经常地,期望以这样的方式存储变量和/或对象的值,使得...
📅  最后修改于: 2020-11-07 08:22:03        🧑  作者: Mango
Python使用内置的input()和print()函数执行标准的输入/输出操作。 input()函数从标准输入流设备(例如键盘)读取字节。另一方面,print()函数将数据发送到标准输出流设备,即显示监视器。 Python程序通过sys模块中定义的标准流对象stdin和stdout与这些IO设备进行交互。input()函数实际上是sys.stdin对象的readline()方法的包装。接收到来自...
📅  最后修改于: 2020-11-07 08:22:28        🧑  作者: Mango
除了open()函数返回的File对象外,还可以使用Python的内置库os模块执行文件IO操作,该模块提供了有用的操作系统相关功能。这些功能对文件执行低级读/写操作。os模块中的open()函数类似于内置的open()。但是,它不返回文件对象,而是返回文件描述符,文件描述符是与打开的文件相对应的唯一整数。文件描述符的值0、1和2代表stdin,stdout和stderr流。从2开始,将为其他文件...
📅  最后修改于: 2020-11-07 08:22:45        🧑  作者: Mango
Python的内置open()函数返回的Python的内置文件对象有一个重要的缺点。当以“ w”模式打开时,write()方法仅接受字符串对象。这意味着,如果您有以任何非字符串形式表示的数据,内置类(数字,字典,列表或元组)或其他用户定义类的对象,则无法将其直接写入文件。在编写之前,您需要将其转换为其字符串表示形式。对于二进制文件,write()方法的参数必须是字节对象。例如,整数列表由bytea...
📅  最后修改于: 2020-11-07 08:23:11        🧑  作者: Mango
Python的序列化和反序列化术语分别为酸洗和反酸洗。在Python库中的泡菜模块,使用非常的Python特定的数据格式。因此,非Python应用程序可能无法正确反序列化腌制的数据。还建议不要从未经身份验证的来源释放数据。序列化(腌制)的数据可以存储在字节字符串或二进制文件中。该模块定义了dumps()和load()函数,以使用byte 字符串来腌制和释放数据。对于基于文件的进程,该模块具有dum...
📅  最后修改于: 2020-11-07 08:23:32        🧑  作者: Mango
Python标准库中的元帅模块的对象序列化功能类似于pickle模块。但是,此模块不用于通用数据。另一方面, Python本身将其用于Python的内部对象序列化,以支持对Python模块的编译版本(.pyc文件)进行读/写操作。封送模块使用的数据格式在Python版本之间不兼容。因此,一个版本的已编译Python脚本(.pyc文件)很可能不会在另一版本上执行。就像泡菜模块一样,封送模块也定义了l...
📅  最后修改于: 2020-11-07 08:23:56        🧑  作者: Mango
Python标准库中的shelve模块提供了简单而有效的对象持久性机制。在此模块中定义的架子对象是类似字典的对象,它永久存储在磁盘文件中。这将在类似于UNIX的系统上创建类似于dbm数据库的文件。书架词典有一定的限制。在此特殊字典对象中,只能将字符串数据类型用作键,而将任何可挑选的Python对象用作值。搁置模块定义了三个类,如下所示:Sr.NoShelve Module & Descriptio...
📅  最后修改于: 2020-11-07 08:24:14        🧑  作者: Mango
dbm软件包提供了类似于接口DBM样式数据库的字典。DBM代表DataBase Manager。 UNIX(和类似UNIX的)操作系统使用它。 dbbm库是Ken Thompson编写的简单数据库引擎。这些数据库使用二进制编码的字符串对象作为键和值。数据库通过使用单个键(主键)将数据存储在固定大小的存储桶中,并使用哈希技术来实现按键快速检索数据。dbm软件包包含以下模块-dbm.gnu模块是GNU...
📅  最后修改于: 2020-11-07 08:24:49        🧑  作者: Mango
CSV代表逗号分隔的值。在与数据库中的电子表格和数据表之间进行数据导入/导出时,此文件格式是一种常用的数据格式。由于PEP 305,csv模块已合并到Python的标准库中。根据PEP 305的建议,它介绍了用于对CSV文件执行读/写操作的类和方法。CSV是Microsoft Excel电子表格软件的首选导出数据格式。但是,csv模块也可以处理其他方言表示的数据。CSV API接口由以下作家和读者...
📅  最后修改于: 2020-11-07 08:25:18        🧑  作者: Mango
JSON代表JavaScript Object Notation。它是一种轻量级的数据交换格式。它是一种独立于语言的跨平台文本格式,许多编程语言都支持该格式。此格式用于Web服务器和客户端之间的数据交换。JSON格式类似于pickle。但是,pickle序列化是特定于Python的,而JSON格式由许多语言实现,因此已成为通用标准。 Python标准库中json模块的功能和接口类似于pickle和...
📅  最后修改于: 2020-11-07 08:25:49        🧑  作者: Mango
XML是可扩展标记语言的缩写。它是一种可移植的,开放源代码和跨平台的语言,非常类似于HTML或SGML,并由万维网联盟推荐。它是一种众所周知的数据交换格式,被大量应用程序使用,例如Web服务,办公工具和面向服务的体系结构(SOA)。 XML格式是机器可读和人类可读的。标准Python库的xml软件包包含以下用于XML处理的模块-Sr.No.Modules & Description1xml.etr...
📅  最后修改于: 2020-11-07 08:26:05        🧑  作者: Mango
plist格式主要由MAC OS X使用。这些文件基本上是XML文档。它们存储和检索对象的属性。 Python库包含plist模块,用于读取和写入“属性列表”文件(它们通常具有.plist扩展名)。从某种意义上说,plistlib模块与其他序列化库基本相似,它还提供了dumps()和loads()函数来表示Python对象的字符串,以及load()和dump()函数来进行磁盘操作。以下字典对象维护...
📅  最后修改于: 2020-11-07 08:27:06        🧑  作者: Mango
CSV,JSON,XML等文件的一个主要缺点是,它们对于随机访问和事务处理不是很有用,因为它们实质上是非结构化的。因此,修改内容变得非常困难。这些平面文件缺少异步处理功能,因此不适合客户端-服务器环境。使用非结构化数据文件会导致数据冗余和不一致。通过使用关系数据库可以克服这些问题。数据库是有组织的数据收集,以消除冗余和不一致并维护数据完整性。关系数据库模型非常流行。它的基本概念是将数据安排在实体表...
📅  最后修改于: 2020-11-07 08:27:49        🧑  作者: Mango
任何关系数据库都将数据保存在表中。表结构定义属性的数据类型,这些属性基本上仅是主要数据类型,这些属性被映射到Python的相应内置数据类型。但是,Python的用户定义对象无法持久存储和从SQL表检索。这是SQL类型与面向对象的编程语言(例如Python)之间的差异。 SQL没有其他类似的数据类型,例如dict,tuple,list或任何用户定义的类。如果必须将对象存储在关系数据库中,则在执行IN...