Python标准库—走马观花
Python有一套很有用的标准库(standard library)。标准库会随着Python解释器,一起安装在你的电脑中的。它是Python的一个组成部分。这些标准库是Python为你准备好的利器,可以让编程事半功倍。
我将根据我个人的使用经验中,挑选出标准库三个方面的包(package)介绍:
Python增强
系统互动
网络
第一类:Python增强
Python自身的已有的一些功能可以随着标准库的使用而得到增强。
1) 文字处理
Python的string类提供了对字符串进行处理的方法。更进一步,通过标准库中的re包,Python可以用正则表达式(regular expression)来处理字符串。
正则表达式是一个字符串模板。Python可以从字符中搜查符合该模板的部分,或者对这一部分替换成其它内容。比如你可以搜索一个文本中所有的数字。正则表达式的关键在于根据自己的需要构成模板。
此外,Python标准库还为字符串的输出提供更加丰富的格式, 比如: string包,textwrap包。
2) 数据对象
不同的数据对象,适用于不同场合的对数据的组织和管理。Python的标准库定义了表和词典之外的数据对象,比如说数组(array),队列(Queue)。一个熟悉数据结构(data structure)的Python用户可以在这些包中找到自己需要的数据结构。
此外,我们也会经常使用copy包,以复制对象。
3) 日期和时间
日期和时间的管理并不复杂,但容易犯错。Python的标准库中对日期和时间的管理颇为完善(利用time包管理时间,利用datetime包管理日期和时间),你不仅可以进行日期时间的查询和变换(比如:2012年7月18日对应的是星期几),还可以对日期时间进行运算(比如2000.1.1 13:00的378小时之后是什么日期,什么时间)。通过这些标准库,还可以根据需要控制日期时间输出的文本格式(比如:输出’2012-7-18‘还是'18 Jul 2012')
4) 数学运算
标准库中,Python定义了一些新的数字类型(decimal包, fractions包), 以弥补之前的数字类型(integer, float)可能的不足。标准库还包含了random包,用于处理随机数相关的功能(产生随机数,随机取样等)。math包补充了一些重要的数学常数和数学函数,比如pi,三角函数等等。
(尽管numpy并不是标准库中的包,但它的数组运算的良好支持,让它在基于Python的科研和计算方面得到相当广泛的应用,可以适当关注。)
5) 存储
之前我们的快速教程中,只提及了文本的输入和输出。实际上,Python可以输入或输出任意的对象。这些对象可以通过标准库中的pickle包转换成为二进制格式(binary),然后存储于文件之中,也可以反向从二进制文件中读取对象。
此外,标准库中还支持基本的数据库功能(sqlite3包)。XML和csv格式的文件也有相应的处理包。
第二类:系统互动
系统互动,主要指Python和操作系统(operate system)、文件系统(file system)的互动。Python可以实现一个操作系统的许多功能。它能够像bash脚本那样管理操作系统,这也是Python有时被成为脚本语言的原因。
1) Python运行控制
sys包被用于管理Python自身的运行环境。Python是一个解释器(interpreter), 也是一个运行在操作系统上的程序。我们可以用sys包来控制这一程序运行的许多参数,比如说Python运行所能占据的内存和CPU, Python所要扫描的路径等。另一个重要功能是和Python自己的命令行互动,从命令行读取命令和参数。
2) 操作系统
如果说Python构成了一个小的世界,那么操作系统就是包围这个小世界的大世界。Python与操作系统的互动可以让Python在自己的小世界里管理整个大世界。
os包是Python与操作系统的接口。我们可以用os包来实现操作系统的许多功能,比如管理系统进程,改变当前路径(相当于’cd‘),改变文件权限等,建立。但要注意,os包是建立在操作系统的平台上的,许多功能在Windows系统上是无法实现的。另外,在使用os包中,要注意其中的有些功能已经被其他的包取代。
我们通过文件系统来管理磁盘上储存的文件。查找、删除,复制文件,以及列出文件列表等都是常见的文件操作。这些功能经常可以在操作系统中看到(比如ls, mv, cp等Linux命令),但现在可以通过Python标准库中的glob包、shutil包、os.path包、以及os包的一些函数等,在Python内部实现。
subprocess包被用于执行外部命令,其功能相当于我们在操作系统的命令行中输入命令以执行,比如常见的系统命令'ls'或者'cd',还可以是任意可以在命令行中执行的程序。
4) 线程与进程
Python支持多线程(threading包)运行和多进程(multiprocessing包)运行。通过多线程和多进程,可以提高系统资源的利用率,提高计算机的处理速度。Python在这些包中,附带有相关的通信和内存管理工具。此外,Python还支持类似于UNIX的signal系统,以实现进程之间的粗糙的信号通信。
第三类:网络
现在,网络功能的强弱很大程度上决定了一个语言的成功与否。从Ruby, JavaScript, php身上都可以感受到这一点。Python的标准库对互联网开发的支持并不充分,这也是Django等基于Python的项目的出发点: 增强Python在网络方面的应用功能。这些项目取得了很大的成功,也是许多人愿意来学习Python的一大原因。但应注意到,这些基于Python的项目也是建立在Python标准库的基础上的。
1) 基于socket层的网络应用
socket是网络可编程部分的底层。通过socket包,我们可以直接管理socket,比如说将socket赋予给某个端口(port),连接远程端口,以及通过连接传输数据。我们也可以利用SocketServer包更方便地建立服务器。
通过与多线程和多进程配合,建立多线程或者多进程的服务器,可以有效提高服务器的工作能力。此外,通过asyncore包实现异步处理,也是改善服务器性能的一个方案。
2) 互联网应用
在实际应用中,网络的很多底层细节(比如socket)都是被高层的协议隐藏起来的。建立在socket之上的http协议实际上更容易也更经常被使用。http通过request/responce的模式建立连接并进行通信,其信息内容也更容易理解。Python标准库中有http的服务器端和客户端的应用支持(BaseHTTPServer包; urllib包, urllib2包), 并且可以通过urlparse包对URL(URL实际上说明了网络资源所在的位置)进行理解和操作。
以上的介绍比较粗糙,只希望能为大家提供一个了解标准库的入口。欢迎大家一起分享标准库的使用经验。
数据分析咨询请扫描二维码
数据分析涉及多个方面的学习,包括理论知识和实践技能。以下是数据分析需要学习的主要方面: 基础知识: 数据分析的基本概念 ...
2024-11-22数据分析适合在多个单位工作,包括但不限于以下领域: 金融行业:金融行业对数据分析人才的需求非常大,数据分析师可以从事经 ...
2024-11-22数据分析是一种涉及从大量数据中提取有用信息和洞察力的过程。其工作内容主要包括以下几个方面: 数据收集与整理:数据分析师 ...
2024-11-22数据分析师需要掌握多种技能,以确保能够有效地处理和分析数据,并为业务决策提供支持。以下是数据分析师需要掌握的主要技能: ...
2024-11-22数据开发和数据分析是两个密切相关但又有所区别的领域。以下是它们的主要区别: 定义和目标: 数据开发:数据开发涉及数据的 ...
2024-11-22数据架构师是负责设计和管理企业数据架构的关键角色,其职责涵盖了多个方面,包括数据治理、数据模型设计、数据仓库构建、数据安 ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列的技能和能力,以确保能够有效地处理、分析和解释数据,从而支持业务决策。以下是数据分析师所需的主要 ...
2024-11-22需求持续增长 - 未来数据分析师需求将持续上升,企业对数据驱动决策的依赖加深。 - 预测到2025年,中国将需要高达220万的数据人 ...
2024-11-22《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21