模块的分类
- 标准库
标准库 Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。 Python标准库的主要功能有: 1.文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能 2.文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能 3.操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志(logging)等功能 4.网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能 5.网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架 6.W3C格式支持,包含HTML,SGML,XML的处理。 7.其它功能,包括国际化支持、数学运算、HASH、Tkinter等 参考自维基百科
- 开源模块
Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、Web开发、数据库接口、图形系统多个领域。第三方模块可以使用Python或者C语言编写。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。Boost C++ Libraries包含了一组函式库,Boost.Python,使得以Python或C++编写的程式能互相调用。Python常被用做其他语言与工具之间的“胶水”语言。 著名第三方库 1.Web框架 Django: 开源Web开发框架,它鼓励快速开发,并遵循MVC设计,开发周期短。 ActiveGrid: 企业级的Web2.0解决方案。 Karrigell: 简单的Web框架,自身包含了Web服务,py脚本引擎和纯python的数据库PyDBLite。 Tornado: 一个轻量级的Web框架,内置非阻塞式服务器,而且速度相当快 webpy: 一个小巧灵活的Web框架,虽然简单但是功能强大。 CherryPy: 基于Python的Web应用程序开发框架。 Pylons: 基于Python的一个极其高效和可靠的Web开发框架。 Zope: 开源的Web应用服务器。 TurboGears: 基于Python的MVC风格的Web应用程序框架。 Twisted: 流行的网络编程库,大型Web框架。 Quixote: Web开发框架。 2.科学计算 Matplotlib: 用Python实现的类matlab的第三方库,用以绘制一些高质量的数学二维图形。 SciPy: 基于Python的matlab实现,旨在实现matlab的所有功能。 NumPy: 基于Python的科学计算第三方库,提供了矩阵,线性代数,傅立叶变换等等的解决方案。 3.GUI PyGtk: 基于Python的GUI程序开发GTK+库。 PyQt: 用于Python的QT开发库。 WxPython: Python下的GUI编程框架,与MFC的架构相似。 4.其它 BeautifulSoup: 基于Python的HTML/XML解析器,简单易用。 PIL: 基于Python的图像处理库,功能强大,对图形文件的格式支持广泛。 PyGame: 基于Python的多媒体开发和游戏软件开发模块。 Py2exe: 将python脚本转换为windows上可以独立运行的可执行程序。 参考自维基百科
- 自定义模块
标准库time
- 时间戳
- 格式化的时间字符串
- 元组(struct_time(tuple)),struct_time元组共有9个元组,
1、time.time(),返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
2、time.sleep(secs),推迟调用线程的运行,secs指秒数。
3、time.gmtime(),可通过help帮助查看参数的解释。接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0
结果是UTC的时区
4、time.localtime(),接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。
结果是UTC+8的时区
如何取出其中的年月日?取出年的方法
5、time.mktime(),接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。
6、time.strftime(),接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
strftime("格式",struct_time)--->"格式化的字符串"
>>> time.strftime("%Y-%m:%d %H:%M:%S",x)
'2019-03:04 11:45:52'
7、time.strptime(),根据fmt的格式把一个时间字符串解析为时间元组。
strptime("格式化的字符串","格式")--->struct_time
>>> time.strptime('2019-03:04 11:45:52',"%Y-%m:%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=4, tm_hour=11, tm_min=45, tm_sec=52, tm_wday=0, tm_yday=63, tm_isdst=-1)
下图为:时间戳、struct_time、格式化字符串之间的转换方法。
8、time.asctime([tupletime])
接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
>>> time.asctime()
'Mon Mar 4 12:34:27 2019'
9、time.ctime([secs])
作用相当于asctime(localtime(secs)),未给参数相当于asctime()
>>> time.ctime()
'Mon Mar 4 12:44:49 2019'
下图为:一种接收元组的形式、一种接收的是时间戳的形式转换为字符串
10、time.timezone
属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。
11、time.tzname
属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。
datetime
1、获取当前时间
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2019, 3, 4, 12, 52, 23, 569266)
>>> print(datetime.datetime.now())
2019-03-04 12:53:23.473371
2、获取当前时间+3天
>>> print(datetime.datetime.now()+datetime.timedelta(3))
2019-03-07 12:55:25.871186
3、获取当前时间-3天
>>> print(datetime.datetime.now()+datetime.timedelta(-3))
2019-03-01 12:56:25.884491
4、获取当前时间+3小时
>>> print(datetime.datetime.now()+datetime.timedelta(hours=3))
2019-03-04 15:57:20.609387
5、获取当前时间+30分钟
>>> print(datetime.datetime.now()+datetime.timedelta(minutes=30))
2019-03-04 13:28:23.742698
结语
感谢阅读,欢迎在评论区中发表自己不同的观点,若有其他问题请在评论区留言,喜欢的朋友请多多关注转发支持一下。