【python】标准库详解

本文涉及的产品
文档翻译,文档翻译 1千页
文本翻译,文本翻译 100万字符
NLP自然语言处理_基础版,每接口每天50万次
简介: 【python】标准库详解

注:最后有面试挑战,看看自己掌握了吗


🌸I could be bounded in a nutshell and count myself a king of infinite space.

钱塘江上潮信来,今日方知我是我。

特别鸣谢:木芯工作室 、Ivan from Russia


Standard Library简介

python标准库内置了大量的函数和类,是python解释器里的核心功能之一。该标准库在python安装时候就已经存在。

python内置对象

内置函数:Built-in Functions 如print()

内置常量:Built-in Constants 如false

内置类型:Built-in Types

内置异常:Built-in Exceptions

如何安装发布第三方模块

自己发布自己的模块

10最好用的模块汇总

最好用的模块汇总

包的本质

如上测试我们可以看出python 的设计者非常巧妙的通过__init__.py 文件将包转成了模块的操作。因此,可以说“包的本质还是模块”。

datetime模块

datetime模块独立存放于Lib/datetime.py内。

def timestamp(self):
        "Return POSIX timestamp as float"
        if self._tzinfo is None:
            s = self._mktime()
            return s + self.microsecond / 1e6
        else:
            return (self - _EPOCH).total_seconds()
    def utctimetuple(self):
        "Return UTC time tuple compatible with time.gmtime()."
        offset = self.utcoffset()
        if offset:
            self -= offset
        y, m, d = self.year, self.month, self.day
        hh, mm, ss = self.hour, self.minute, self.second
        return _build_struct_time(y, m, d, hh, mm, ss, 0)
    def date(self):
        "Return the date part."
        return date(self._year, self._month, self._day)
    def time(self):
        "Return the time part, with tzinfo None."
        return time(self.hour, self.minute, self.second, self.microsecond, fold=self.fold)

案例

from datetime import datetime,date,time
if '__main__' == __name__:
    print(datetime.now())
    today = datetime.now()
    print(datetime.date(today))
    print(datetime.time(today))
    print(datetime.ctime(today))
    print(datetime.utcnow())
    print(datetime.timestamp(today))#ijian chuo
    print(datetime.fromtimestamp(datetime.timestamp(today))) # 根据时间戳返回UTC日期时间
    date1 = date(2018,2,12)
    time1 = time(2,6,32)
    print(datetime.combine(date1,time1))
    newDatetime = datetime.strptime("12/2/18 20:59",'%d/%m/%y %H:%M')
    print(newDatetime)
    for tv in datetime.timetuple(today):
        print(tv)
    print(today.isoformat())
    print(today.strftime("%Y年%m月%d日 %H:%M:%S %p"))
2023-03-01 02:33:23.945916
2023-03-01
02:33:23.945916
Wed Mar  1 02:33:23 2023
2023-02-28 18:33:23.945916
1677609203.945916
2023-03-01 02:33:23.945916
2018-02-12 02:06:32
2018-02-12 20:59:00
2023
3
1
2
33
23
2
60
-1
2023-03-01T02:33:23.945916
2023年03月01日 02:33:23 AM
Process finished with exit code 0

Math模块

import math as mt
if '__main__' == __name__:
    print(    mt.trunc(3.6))
import math as mt
if '__main__' == __name__:
    print(    mt.trunc(3.6))
    print(mt.ceil(1.5))
import math as mt
if '__main__' == __name__:
    print(    mt.trunc(3.6))
    print(mt.ceil(1.5))
    print(round(5.3))
import math as mt
if '__main__' == __name__:
    a= range(3,5)
    print(    mt.fsum(a))
import math as mt
if '__main__' == __name__:
    a= range(3,5)
    print(    mt.fsum(a))
    print(sum(a))
import math as mt
if '__main__' == __name__:
    a= -6
    print(mt.fabs(a))

random模块

随机函数 正态分布、伽马分布、贝塔分布都可以用到。

import random
if '__main__' == __name__:
    print(    random.random())
    print(random.uniform(10,15))
    print(random.betavariate(5,3))# beta 分布

OS模块

import os
if '__main__' == __name__:
    print(os.environ)
    print(os.getcwd())# 返回当前工作路径字符串
    print(os.system('ping 127.0.0.1'))
import os
if '__main__' == __name__:
    print(os.environ)
    print(os.getcwd())# 返回当前工作路径字符串
    print(os.system('ipconfig'))
    print(os.urandom(10)) # 执行加密随机函数

sys模块

提供与python解释器相关的一些变量和函数

Meta path import for built-in modules.
        All methods are either class or static methods to avoid the need to
        instantiate the class.
import sys
if '__main__' == __name__:
    print(sys.path) # 获取模块文件搜索路径的字符串
    sys.path[0]='d:\test'# 临时指定新的搜索路径
    print(sys.path)
    print(sys.platform)
    if sys.platform.startswith('win32'):
        print('调用win版本模块文件代码')
    elif sys.platform.startswith('linux'):
        print('调用linux')
import sys
if '__main__' == __name__:
    print(sys.getwindowsversion())# 获取win版本信息

time模块

import time
if '__main__' == __name__:
    time.sleep(1)# 暂停五秒
    print(time.perf_counter())# 获取当前cpu时间
    t1 = time.perf_counter()
    t2= time.perf_counter()
    print(t2-t1)
import time
if '__main__' == __name__:
    time.time() # 返回从纪元开始的秒数
    t=time.strftime('%H:%M')
    print(t)

总结

自定义模块

分为:

函数模块文件

类模块文件

主程序模块文件

标准库模块

可以直接或者通过引用使用

比如time

用help查看time模块

print(help(time))

常用第三方库大汇总

环境管理 P 非常简单的交互式python 版本管理工具 环境管理 Pyenv 简单的Python 版本管理工具

环境管理 Vex 可以在虚拟环境中执行命令 环境管理 Virtualenv virtualenvwrapper 创建独立Python

环境的工具 包管理 pip Python 包和依赖关系管理工具 包管理 pip-tools P保证Python 包依赖关系更新的一组工具

包管理 Pipenv P Python 官方推荐的新一代包管理工具 包管理 Poetry P 可完全取代setup.py 的包管理工具

包仓库 warehouse 下一代PyPI 包仓库 Devpi PyPI 服务和打包/测试/分发工具

分发(打包为可执行文件以便分发) PyInstaller 将Python 程序转成独立的执行文件(跨平台)

分发(打包为可执行文件以便分发) Nuitka 将脚本、模块、包编译成可执行文件或扩展模块

分发(打包为可执行文件以便分发) py2app 将Python 脚本变为独立软件包(Mac OS X)

分发(打包为可执行文件以便分发) py2exe 将Python 脚本变为独立软件包(Windows)

分发(打包为可执行文件以便分发) pynsist 一个用来创建Windows 安装程序的工具,可以在安装程序中打包Python 本身

构建工具(将源码编译成软件) Buildout 构建系统,从多个组件来创建,组装和部署应用

构建工具(将源码编译成软件) BitBake 针对嵌入式Linux 的类似make 的构建工具

构建工具(将源码编译成软件) Fabricate 对任何语言自动找到依赖关系的构建工具 交互式Python

解析器 IPython 功能丰富的工具, 非常有效的使用交互式Python 交互式Python

解析器 bpython 界面丰富的Python 解析器 交互式Python 解析器 Ptpython 高级交互式Python 解析器,

构建于python-prompt-toolkit 之上 文件管理 Aiofiles 基于asyncio,提供文件异步操作

文件管理 Imghdr (Python 标准库)检测图片类型 文件管理 Mimetypes (Python 标准库)将文件名映射为MIME

类型 文件管理 path.py 对os.path 进行封装的模块 文件管理 Pathlib (Python3.4+

标准库)跨平台的、面向对象的路径操作库 文件管理 Unipath 用面向对象的方式操作文件和目录

文件管理 Watchdog 管理文件系统事件的API 和shell 工具 日期和时间 Arrow 更好的Python 日期时间操作类库

日期和时间 Chronyk 解析手写格式的时间和日期 日期和时间 Dateutil Python datetime 模块的扩展

日期和时间 PyTime 一个简单易用的Python 模块,用于通过字符串来操作日期/时间

日期和时间 when.py 提供用户友好的函数来帮助用户进行常用的日期和时间操作

文本处理 chardet 字符编码检测器,兼容Python2 和Python3 文本处理 Difflib (Python

标准库)帮助我们进行差异化比较 文本处理 Fuzzywuzzy 模糊字符串匹配

文本处理 Levenshtein 快速计算编辑距离以及字符串的相似度 文本处理 Pypinyin 汉字拼音转换工具Python 版

文本处理 Shortuuid 一个生成器库,用以生成简洁的,明白的,URL安全的UUID 文本处理 simplejson Python

的JSON 编码、解码器 文本处理 Unidecode Unicode 文本的ASCII 转换形式

文本处理 Xpinyin 一个用于把汉字转换为拼音的库 文本处理 Pygment 通用语法高亮工具

文本处理 Phonenumbers 解析,格式化,储存,验证电话号码 文本处理 Sqlparse 一个无验证的SQL 解析器

特殊文本格式处理 Tablib 一个用来处理中表格数据的模块 特殊文本格式处理 Pyexcel 用来读写,操作Excel 文件的库

特殊文本格式处理 python-docx 读取,查询以及修改word 文件 特殊文本格式处理 PDFMiner 一个用于从PDF

文档中抽取信息的工具 特殊文本格式处理 Python-Markdown2 纯Python 实现的Markdown 解析器

特殊文本格式处理 Csvkit 用于转换和操作CSV 的工具 自然语言处理 NLTK 一个先进的平台,用以构建处理人类语言数据的Python

程序 自然语言处理 Jieba 中文分词工具 自然语言处理 langid.py 独立的语言识别系统

自然语言处理 SnowNLP 一个用来处理中文文本的库

自然语言处理 Thulac 清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包

下载器 you-get 一个YouTube/Youku/Niconico 视频下载器 图像处理 pillow 最常用的图像处理库

图像处理 imgSeek 一个使用视觉相似性搜索一组图片集合的项目 图像处理 face_recognition 简单易用的python

人脸识别 图像处理 python-qrcode 一个纯Python 实现的二维码生成器 OCR Pyocr Tesseract

和Cuneiform 的一个封装(wrapper) OCR pytesseract Google Tesseract OCR

的另一个封装(wrapper) 音频处理 Audiolazy Python 的数字信号处理包 音频处理 Dejavu 音频指纹提取和识别

音频处理 id3reader 一个用来读取MP3 元数据的Python 模块 音频处理 TimeSide 开源web 音频处理框架

音频处理 Tinytag 一个用来读取MP3, OGG, FLAC 以及Wave文件音乐元数据的库

音频处理 Mingus 一个高级音乐理论和曲谱包,支持MIDI 文件和回放功能 视频和GIF

处理 Moviepy 一个用来进行基于脚本的视频编辑模块,适用于多种格式,包括动图GIFs 视频和GIF

处理 scikit-video SciPy 视频处理常用程序 地理位置 GeoDjango 世界级地理图形web 框架

地理位置 GeoIP MaxMind GeoIP Legacy 数据库的Python API 地理位置 Geopy Python

地址编码工具箱 HTTP requests 人性化的HTTP 请求库 HTTP httplib2 全面的HTTP 客户端库

HTTP urllib3 一个具有线程安全连接池,支持文件post,清晰友好的HTTP 库 Python

实现的数据库 pickleDB 一个简单,轻量级键值储存数据库 Python 实现的数据库 PipelineDB 流式SQL 数据库

Python 实现的数据库 TinyDB 一个微型的,面向文档型数据库 web 框架 Django Python 界最流行的web 框架

web 框架 Flask 一个Python 微型框架 web 框架 Tornado 一个web 框架和异步网络库 CMS

内容管理系统 odoo-cms 一个开源的,企业级CMS,基于odoo CMS

内容管理系统 djedi-cms 一个轻量级但却非常强大的Django CMS ,考虑到了插件,内联编辑以及性能 CMS

内容管理系统 Opps 一个为杂志,报纸网站以及大流量门户网站设计的CMS 平台,基于Django

电子商务和支付系统 django-oscar 一个用于Django 的开源的电子商务框架

电子商务和支付系统 django-shop 一个基于Django 的店铺系统 电子商务和支付系统 Shoop 一个基于Django

的开源电子商务平台 电子商务和支付系统 Alipay Python 支付宝API

电子商务和支付系统 Merchant 一个可以接收来自多种支付平台支付的Django 应用 游戏开发 Cocos2d 用来开发2D 游戏

游戏开发 Panda3D 由迪士尼开发的3D 游戏引擎,并由卡内基梅陇娱乐技术中心负责维护。使用C++ 编写, 针对Python

进行了完全的封装 游戏开发 Pygame Pygame 是一组Python 模块,用来编写游戏

游戏开发 RenPy 一个视觉小说(visual novel)引擎 计算机视觉库 OpenCV 开源计算机视觉库

计算机视觉库 Pyocr Tesseract 和Cuneiform 的包装库

计算机视觉库 SimpleCV 一个用来创建计算机视觉应用的开源框架

机器学习人工智能 TensorFlow 谷歌开源的最受欢迎的深度学习框架

机器学习人工智能 keras 以tensorflow/theano/CNTK 为后端的深度学习封装库,快速上手神经网络

机器学习人工智能 Hebel GPU 加速的深度学习库

机器学习人工智能 Pytorch 一个具有张量和动态神经网络,并有强大GPU加速能力的深度学习框架

机器学习人工智能 scikit-learn 基于SciPy 构建的机器学习Python 模块

机器学习人工智能 NuPIC 智能计算Numenta 平台 科学计算和数据分析 NumPy 使用Python 进行科学计算的基础包

科学计算和数据分析 Pandas 提供高性能,易用的数据结构和数据分析工具

科学计算和数据分析 SciPy 用于数学,科学和工程的开源软件构成的生态系统 科学计算和数据分析 PyMC 马尔科夫链蒙特卡洛采样工具

代码分析和调试 code2flow 把你的Python 和JavaScript 代码转换为流程图

代码分析和调试 Pycallgraph 这个库可以把你的Python 应用的流程(调用图)进行可视化

代码分析和调试 Pylint 一个完全可定制的源码分析器 代码分析和调试 autopep8 自动格式化Python

代码,以使其符合PEP8规范 代码分析和调试 Wdb 一个奇异的web 调试器,通过WebSockets工作

代码分析和调试 Lineprofiler 逐行性能分析 代码分析和调试 Memory Profiler 监控Python 代码的内存使用

图形用户界面 Pyglet 一个Python 的跨平台窗口及多媒体库 图形用户界面 PyQt 跨平台用户界面框架Qt 的Python

绑定,支持Qt v4 和Qt v5 图形用户界面 Tkinter Tkinter 是Python GUI 的一个事实标准库

图形用户界面 wxPython wxPython 是wxWidgets C++ 类库和Python 语言混合的产物

网络爬虫和HTML分析 Scrapy 一个快速高级的屏幕爬取及网页采集框架 网络爬虫和HTML分析 Cola 一个分布式爬虫框架

网络爬虫和HTML分析 Grab 站点爬取框架 网络爬虫和HTML分析 Pyspider 一个强大的爬虫系统

网络爬虫和HTML分析 html2text 将HTML 转换为Markdown 格式文本

网络爬虫和HTML分析 python-goose HTML 内容/文章提取器 硬件编程 Ino 操作Arduino 的命令行工具

硬件编程 Pyro Python 机器人编程库 硬件编程 PyUserInput 跨平台的,控制鼠标和键盘的模块

硬件编程 Pingo Pingo 为类似Raspberry Pi,pcDuino, IntelGalileo 等设备提供统一的API

PyPI 网站和PIP 模块管理工具 PyPI(Python Package Index)是python

官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI 推荐使用pip 包管理器来下载第三方库。 pip

是一个现代的,通用的Python 包管理工具。提供了对Python 包的查找、下载、安装、卸载的功能。pip

可正常工作在Windows、Mac OS、Unix/Linux 等操作系统上,但是需要至少2.6+和3.2+的CPython 或PyPy

的支持。python 2.7.9 和3.4 以后的版本已经内置累pip 程序,所以不需要安装。

模块->包

拆分的模块多了以后-----考虑建立文件夹把模块分类存放了。

包—里面有__init__.py文件

子文件夹里面放对应的模块文件

导入包模块:

包必须安装到python解释器能搜索到的路径下面

或者通过设置临时搜索路径来

或者放到python/Lib下面

import package1.Cat.Cat_Main # 顶级目录。子目录。模块文件

闲话

大部分人还是有一种“勤劳的守旧”观念,也就是认为使用工具提升生产力是一种偷懒和投机取巧的表现,推崇使用 vim 等高门槛和学习曲线陡峭的软件是一种“技术能力强”,“能吃苦学习”的习惯。

实在难以理解!

相关文章
|
24天前
|
XML JSON 数据库
Python的标准库
Python的标准库
162 77
|
2月前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
2月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
83 0
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
101 4
数据分析的 10 个最佳 Python 库
|
25天前
|
XML JSON 数据库
Python的标准库
Python的标准库
47 11
|
2月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
132 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
2月前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
25天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
64 8
|
2月前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
100 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
1月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4