前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【python】标准库详解

【python】标准库详解

作者头像
20岁爱吃必胜客
发布2023-03-06 14:01:36
1.1K0
发布2023-03-06 14:01:36
举报
文章被收录于专栏:进步集

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

文章目录


🌸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内。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
	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)

案例

代码语言:javascript
复制
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模块

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

random模块

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

代码语言:javascript
复制
import random
if '__main__' == __name__:
    print(    random.random())
    print(random.uniform(10,15))
    print(random.betavariate(5,3))# beta 分布

OS模块

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

sys模块

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

代码语言:javascript
复制
Meta path import for built-in modules.
    
        All methods are either class or static methods to avoid the need to
        instantiate the class.
代码语言:javascript
复制
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')
代码语言:javascript
复制
import sys
if '__main__' == __name__:
    
    print(sys.getwindowsversion())# 获取win版本信息

time模块

代码语言:javascript
复制
import time
if '__main__' == __name__:
    time.sleep(1)# 暂停五秒
    print(time.perf_counter())# 获取当前cpu时间

    t1 = time.perf_counter()
    t2= time.perf_counter()
    print(t2-t1)
代码语言:javascript
复制
import time
if '__main__' == __name__:
    time.time() # 返回从纪元开始的秒数
    t=time.strftime('%H:%M')
    print(t)

总结

自定义模块

分为: 函数模块文件 类模块文件 主程序模块文件

标准库模块

可以直接或者通过引用使用 比如time

用help查看time模块

代码语言:javascript
复制
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下面

代码语言:javascript
复制
import package1.Cat.Cat_Main # 顶级目录。子目录。模块文件

闲话

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • Standard Library简介
    • python内置对象
    • 如何安装发布第三方模块
      • 10最好用的模块汇总
      • 包的本质
      • datetime模块
        • 案例
        • Math模块
        • random模块
        • OS模块
        • sys模块
        • time模块
        • 总结
          • 自定义模块
            • 标准库模块
              • 用help查看time模块
          • 常用第三方库大汇总
          • 模块->包
            • 导入包模块:
            • 闲话
            相关产品与服务
            NLP 服务
            NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档