注:最后有面试挑战,看看自己掌握了吗
文章目录
- Standard Library简介
- python内置对象
- 如何安装发布第三方模块
- 10最好用的模块汇总
- 包的本质
- datetime模块
- 案例
- Math模块
- random模块
- OS模块
- sys模块
- time模块
- 总结
- 自定义模块
- 标准库模块
- 用help查看time模块
- 常用第三方库大汇总
- 模块->包
- 导入包模块:
- 闲话
🌸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 等高门槛和学习曲线陡峭的软件是一种“技术能力强”,“能吃苦学习”的习惯。
实在难以理解!