C站最全Python库总结丨标准库+高级库

梦想还是要有的,万一别人问呢?

作者:不吃西红柿

简介:CSDN博客专家、蓝桥签约作者、大数据&Python领域优质创作者。

CSDN私信我,回复【资料】领取:

1、100套小编购买的简历模板;
2、1000套精品PPT模板;
3、Python 基础和实战应用;
4、Java基础、高级和面试资料;
5、大数据-行业资料(行业峰会、技术风向);
6、大数据-学习资料(300+ PDF);
7、数据仓库理论知识和项目实战;
8、机器学习&推荐系统。


文章如果能击中你,求点赞、求收藏、求评论

上一篇,《C站最全Python标准库总结》,登顶了【全站综合热榜】和【python领域热榜】,获得了2362多次点赞、998次评论、2072次收藏,谢谢各位小伙伴。

有粉丝留言说,还想看常用高级库,为了宠粉和圈粉,西红柿就再补充一下Python高级库的使用技巧。希望你能喜欢哟~


python标准库思维导图:


python常用高级库思维导图:


一、python常用高级库


1、操作数据库:MySQLdb

安装MySQLdb,请访问 http://sourceforge.net/projects/mysql-python 

import MySQLdb
 
# 连接数据库 
conn = MySQLdb.connect(host='localhost',user='root',passwd='xxxx',db='test1')

 
# 获取cursor对象来进行操作
cursor = conn.cursor()

# 从你的全世界错过~
sql = "select * from world where someone like 'you' "


# 执行sql
cursor.execute(sql)

2、Web 开发: flask

把客户端所有的请求都转发给这个程序实例
from flask import Flask
import datetimeserver=Flask(__name__)@server.route('/time',methods=['post','get'])
def get_time():now=str(datetime.datetime.now())#把当前时间转换成字符串return "当前的时间是:%s"%nowserver.run(port=8888)

3、网络爬虫:requests

Requests 允许你发送纯天然的 HTTP/1.1 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的。

一个简单的爬虫样例:

import requests
heads = {}
heads['User-Agent'] = 'Mozilla/5.0 ' \'(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \'(KHTML, like Gecko) Version/5.1 Safari/534.50'response = requests.get('http://www.baidu.com',headers=headers)

4、操作execl:pandas

# -*- coding: utf-8 -*-
import xlrdimport xlwt
from datetime import date,datetimedef read_excel():# 打开文件workbook = xlrd.open_workbook(r'F:\demo.xlsx')# 获取所有sheetprint workbook.sheet_names() # [u'sheet1', u'sheet2']sheet2_name = workbook.sheet_names()[1]# 根据sheet索引或者名称获取sheet内容sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始sheet2 = workbook.sheet_by_name('sheet2')# sheet的名称,行数,列数print sheet2.name,sheet2.nrows,sheet2.ncols# 获取整行和整列的值(数组)rows = sheet2.row_values(3) # 获取第四行内容cols = sheet2.col_values(2) # 获取第三列内容print rowsprint cols# 获取单元格内容print sheet2.cell(1,0).value.encode('utf-8')print sheet2.cell_value(1,0).encode('utf-8')print sheet2.row(1)[0].value.encode('utf-8')# 获取单元格内容的数据类型print sheet2.cell(1,0).ctypeif __name__ == '__main__':read_excel()

5、数据分析:numpy

NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等。

NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。

三角函数

NumPy 提供了标准的三角函数:sin()、cos()、tan()。

import numpy as npa = np.array([0,30,45,60,90])
print ('不同角度的正弦值:')
# 通过乘 pi/180 转化为弧度  
print (np.sin(a*np.pi/180))
print ('\n')
print ('数组中角度的余弦值:')
print (np.cos(a*np.pi/180))
print ('\n')
print ('数组中角度的正切值:')
print (np.tan(a*np.pi/180))

6、数据画图分析:Matplotlib

import numpy as np 
from matplotlib import pyplot as plt x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y) 
plt.show()

以上实例中,np.arange() 函数创建 x 轴上的值。y 轴上的对应值存储在另一个数组对象 y 中。 这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。

图形由 show() 函数显示。

7、科学计算:scipy

  scipy.special库中的特殊函数都是超越函数,所谓超越函数是指变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。如初等函数中的三角函数、反三角函数与对数函数、指数函数都是初等超越函数,一般来说非初等函数都是超越函数。

初等函数:指由基本初等函数经过有限次四则运算与复合运算所得到的函数

8、视觉及图像处理:PIL(pillow)

创建缩略图

import os
from PIL import Imageimage_path = 'python-logo.png'  # 图片位置
size = (128, 128)  # 文件大小
f, e = os.path.splitext(image_path)  # 获取文件名与后缀
outfile = f + ".thumbnail"
if image_path != outfile:try:im = Image.open(image_path)im.thumbnail(size)  # 设置缩略图大小im.save(outfile, "JPEG")except IOError:print("cannot convert", image_path)

创建滚动图形

python学得好,PS也能干!

from PIL import Imagedef roll(image, delta):""" 向侧面滚动图像 """xsize, ysize = image.sizedelta = delta % xsizeif delta == 0: return imagepart1 = image.crop((0, 0, delta, ysize))part2 = image.crop((delta, 0, xsize, ysize))image.paste(part1, (xsize - delta, 0, xsize, ysize))image.paste(part2, (0, 0, xsize - delta, ysize))return imageif __name__ == '__main__':image_path = 'test.jpg'im = Image.open(image_path)roll(im, 300).show()  # 向侧面滚动 300 像素


9、图形界面开发: PyQT

俄罗斯方块游戏是有史以来最受欢迎的电脑游戏。

最初的游戏是由俄罗斯设计和编程的程序员阿列克谢帕基特诺夫于1985年。此后,俄罗斯方块是几乎所有的计算机平台上可用在很多变化。
俄罗斯方块称为积木拼图游戏。在这个游戏中,我们有七种不同形状叫tetrominoes:“s”形,Z-shape,t形,一个l型的空间,一个线,MirroredL-shape和正方形。这些形状的形成有四个方格。形状是跌倒。俄罗斯方块游戏的对象是移动和旋转的形状使他们适合尽可能多。

如果我们设法形成一个行,该行摧毁我们得分。我们直到我们玩俄罗斯方块游戏。

tetrominoes

PyQt5是一种用于创建应用程序的工具。还有其他的库是针对创建电脑游戏。

然而,PyQt5和其他应用程序工具包可以用来创建简单的游戏。
创建一个电脑游戏是一个提高编程技能的很好的方发。


10、游戏开发:pygame

  • Pygame是一组跨平台的Python模块, 用于创建视频游戏。
  • 它由旨在与Python编程语言一起使用的计算机图形和声音库组成。
  • Pygame由Pete Shinners正式编写, 以取代PySDL。
  • Pygame适合于创建客户端应用程序, 这些应用程序可以包装在独立的可执行文件中。
import pygamepygame.init()
screen = pygame.display.set_mode((400, 500))
done = Falsewhile not done:for event in pygame.event.get():if event.type == pygame.QUIT:done = Truepygame.display.flip()

。。。。。。。。。。。。分隔符。。。。。。。

二、python常用标准库

1、操作系统接口

os模块提供了不少与操作系统相关联的函数。

>>> import os
>>> os.getcwd()      # 返回当前的工作目录
'C:\\Python34'
>>> os.chdir('/server/accesslogs')   # 修改当前的工作目录
>>> os.system('mkdir today')   # 执行系统命令 mkdir 
0

建议使用 "import os" 风格而非 "from os import *"。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。

os常用命令

序号方法功能
1os.access(path, mode)  检验权限模式
2os.chdir(path)   改变当前工作目录
3os.chflags(path, flags)  设置路径的标记为数字标记。
4os.chmod(path, mode)    更改权限
5os.chown(path, uid, gid)  更改文件所有者
6os.chroot(path)   改变当前进程的根目录
7os.close(fd)    关闭文件描述符 fd
8os.closerange(fd_low, fd_high)    关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略
9os.dup(fd)    复制文件描述符 fd
10os.dup2(fd, fd2)    将一个文件描述符 fd 复制到另一个 fd2


2、文件通配符

glob模块提供了一个函数用于从目录通配符搜索中生成文件列表:

>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']

3、命令行参数

通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。

sys.argv
可以用sys.argv获取当前正在执行的命令行参数的参数列表(list)。
变量解释

  • sys.argv[0]当前程序名
  • sys.argv[1]第一个参数
  • sys.argv[2]第二个参数

len(sys.argv)-1 参数个数(减去文件名)

例如在命令行中执行 "python demo.py one two three" 后可以得到以下输出结果:

>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']

4、字符串正则匹配

re模块为高级字符串处理提供了正则表达式工具。可以说是爬虫必备,对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:如果只需要简单的功能,应该首先考虑字符串方法,因为它们非常简单,易于阅读和调试:

>>> 'tea for too'.replace('too', 'two')
'tea for two'

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)

函数参数说明:

参数描述
pattern匹配的正则表达式
string要匹配的字符串。
flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功re.match方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法描述
group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

5、数学计算

math模块为浮点运算提供了对底层C函数库的访问:

>>> import math
>>> math.cos(math.pi / 4)
0.70710678118654757
>>> math.log(1024, 2)
10.0

在实际工作中,math标准库往往无法满足需求,我还需要扩展库:NumPy

NumPy(Numerical Python) 支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

  • NumPy 官网 NumPy

6、发送邮件

有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls 接收的数据的 urllib.request 以及用于发送电子邮件的 smtplib:

import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

参数说明

  • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
  • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
  • local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。

Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

参数说明

  • from_addr: 邮件发送者地址。
  • to_addrs: 字符串列表,邮件发送地址。
  • msg: 发送消息

案例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-import smtplib
from email.mime.text import MIMEText
from email.header import Headersender = 'from@runoob.com'
receivers = ['429240967@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')   # 发送者
message['To'] =  Header("测试", 'utf-8')        # 接收者subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string())print "邮件发送成功"
except smtplib.SMTPException:print "Error: 无法发送邮件"

7、日期和时间

datetime模块为日期和时间处理同时提供了简单和复杂的方法。

支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。

该模块还支持时区处理:

>>> # dates are easily constructed and formatted
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2003, 12, 2)
>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

时间的三种存在方式:时间对象,时间字符串,时间戳。

(1)字符串转datetime:

>>> string = '2014-01-08 11:59:58'
>>> time1 = datetime.datetime.strptime(string,'%Y-%m-%d %H:%M:%S')
>>> print time1
2014-01-08 11:59:58

(2)datetime转字符串:

>>> time1_str = datetime.datetime.strftime(time1,'%Y-%m-%d %H:%M:%S')
>>> time1_str
'2014-01-08 11:59:58'

(3)时间戳转时间对象:

>>>time1 = time.localtime()
>>>time1_str = datetime.datetime.fromtimestamp(time1)

8、数据压缩

以下模块直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile。

>>> import zlib
>>> s = b'witch which has which witches wrist watch'
>>> len(s)
41
>>> t = zlib.compress(s)
>>> len(t)
37
>>> zlib.decompress(t)
b'witch which has which witches wrist watch'
>>> zlib.crc32(s)
226805979

9、性能度量

有些用户对了解解决同一问题的不同方法之间的性能差异很感兴趣。Python 提供了一个度量工具,为这些问题提供了直接答案。

例如,使用元组封装和拆封来交换元素看起来要比使用传统的方法要诱人的多,timeit 证明了现代的方法更快一些。

>>> from timeit import Timer
>>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
0.57535828626024577
>>> Timer('a,b = b,a', 'a=1; b=2').timeit()
0.54962537085770791

相对于 timeit 的细粒度,:mod:profile 和 pstats 模块提供了针对更大代码块的时间度量工具。


10、测试模块

开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试

doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。

测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中。

通过用户提供的例子,它强化了文档,允许 doctest 模块确认代码的结果是否与文档一致:

def average(values):"""Computes the arithmetic mean of a list of numbers.>>> print(average([20, 30, 70]))40.0"""return sum(values) / len(values)import doctest
doctest.testmod()   # 自动验证嵌入测试

 

【求评论、求点赞、求收藏】 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepMind-深度学习: AI革命及其前沿进展 (54页ppt报告)

来源:专知摘要:2018年9 月 9 日-14 日,DeepMind主办的Deep Learning Indaba 2018 大会在南非斯泰伦博斯举行。会上,牛津大学教授和其他15位专家做了《深度学习: AI革命及其前沿进展》的报告。Nando de FreitasNando de Freitas是一…

❤️ 6个Python办公黑科技,工作效率提升100倍!HR小姐姐都馋哭了(附代码)❤️

🍅 作者:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌。简历模板、职场PPT模板、技术难题交流、面试套路尽管【关注】私聊我。 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 如有…

苹果未来秘密在这里!从神秘组织到七大技术布局

来源:智东西随着人工智能的艰难发展,智能手机增长的放缓, 苹果公司能否第三次重塑自我?在很多方面,苹果仍然是一家以Steve Jobs个人形象制造的公司,专注于颠覆性产品。但今天,苹果走在了十字路口…

❤️ 爬虫分析CSDN大佬之间关系,堪比娱乐圈 ❤️

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌简历模板、PPT模板、技术资料尽管【关注】私聊我。历史文章目录:https://t.1yb.co/zHJo 🍅 欢迎点赞 👍 …

SSH框架整合

ssh框架整合步骤如下 提示:myeclipse环境、工程环境、tomcat环境的jdk保持一致 1、新建一个工程,把工程的编码为utf-8 2、把jsp的编码形式改成utf-8 3、把jar包放入到lib下 4、建立三个src folder src 存放源代码 config 存放配置文件 hibernate…

关于未来的10点核心思考

作者:尤瓦尔赫拉利 牛津大学历史学博士,全球瞩目的新锐历史学家来源:《今日简史》世界正在变得越来越复杂,我们正在陷入知识的错觉和群体的无知。同时,我们的生活被社交媒体所塑造,真相早已不存在&#xff…

❤️爆肝3万字,最硬核丨Mysql 知识体系、命令全集 【建议收藏 】❤️

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌ 简历模板、PPT模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &am…

今天专攻POWERSHELL获取本机CPU,内存消耗

PS脚本如下: 1 $Server $env:computername2 #servers CPU Mem Hardinfor 3 $cpu gwmi –computername $Server win32_Processor 4 $men gwmi -ComputerName $Server win32_OperatingSystem 5 $Disks gwmi –Computer: $Server win32_logicaldisk -filter …

证明黎曼猜想的5页论文已发布!最简洁的解读在这里

来源:潇轩社著名数学家阿蒂亚(Michael Atiyah)公开了他为黎曼猜想做的“简洁证明”,论文长度总共5页。借助量子力学中的无量纲常数α(fine structure constant),阿提亚声称解决了复数域上的黎曼…

《Python顶级入门教程》一步一步,是魔鬼的步伐

目录 🍅 1、欲练此功,先知此人 ⚾ 2、Python 语言特性 ❤ 3、Python 特点 🍅 4、Python 行情如何? ✍ 5、Python 怎么学? 5.1 学理论——懂原理 5.2 做练习——会应用 5.3 团队学习——不懂就问 &#x1f34…

C#/C++/Fortran 在32位/64位下数学计算性能对比

测试平台 在我的上一篇博客中对比了VS2010中C#和C在运算密集型程序中的性能。上一篇博客的链接: http://www.cnblogs.com/ytyt2002ytyt/archive/2011/11/24/2261104.html 当时是在AMD 速龙9650 CPU(4核心)下的测试结果。 随着VS2012、Intel Parallel Studio XE 2013…

“光纤之父”高锟离世,感谢他的贡献

来源:云头条据明报报道,香港中文大学前校长、“光纤之父”、2009年诺贝尔物理学奖得主,今天(9月23日)下午在医院离世,享年84岁。高錕1933年11月在中国上海出生,祖贯江苏金山市,出身书…

struts2服务端与android交互

本文主要包括以下内容 android与struts2服务器实现登陆 android从struts2服务器获取list数据 android上传数据到struts2服务器 服务器端代码 package com.easyway.json.android;import java.util.HashMap; import java.util.Map;import javax.servlet.http.HttpServletReque…

爆款专栏《Python 黑科技》目录导航丨进度:12/50

《Python 快速入门专栏丨掌握基础》和《Python 黑科技丨练习应用》由 CSDN 博客专家丨全站排名 Top 8 的硬核博主 不吃西红柿 倾力打造,旨在帮助大家快速入门掌握 Python。 更有学习资料,简历和 PPT 模板,微信公众号 【信息技术智库】关注我&…

干货|2018年中国智能硬件行业现状与发展趋势报告

来源:前瞻产业研究院未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网…

一文看懂芯片测试产业

来源:基业常青经济研究院从IDM到垂直分工,IC产业专业化分工催生独立测试厂商出现。集成电路产业从上世纪60年代开始逐渐兴起,早期企业都是IDM运营模式(垂直整合),这种模式涵盖设计、制造、封测等整个芯片生…

Android之圆角矩形

安卓圆角矩形的定义 在drawable文件夹下&#xff0c;定义corner.xml <?xml version"1.0" encoding"utf-8"?> <shape xmlns:android"http://schemas.android.com/apk/res/android" android:shape"rectangle"> <!-…

”大脑“爆发背后是50年互联网架构重大变革

前言&#xff1a;面对即将到来的2019年&#xff0c;互联网诞生50年&#xff0c;将是诸多纪念活动中重要的一个&#xff0c;经过50年的发展&#xff0c;互联网究竟发生什么重要的变化&#xff0c;通过这篇文章试图进行一次总结&#xff0c;也作为提前向互联网50年的致敬。作者&a…

动图|帮你一次性搞清楚 40种传感器工作原理

来源&#xff1a;一览众车/东方仿真物联网智库 转载摘要&#xff1a;帮你一次性搞清楚 40种传感器工作原理扩散硅式压力传感器应变加速度感应器压阻式传感器测量液位的工作原理MQN型气敏电阻结构及测量电路气泡式水平仪的工作原理布料张力测量及控制原理直滑式电位器控制气缸活…

Android实现高仿QQ附近的人搜索展示

本文主要实现了高仿QQ附近的人搜索展示&#xff0c;用到了自定义控件的方法 最终效果如下 1.下面展示列表我们可以使用ViewPager来实现&#xff08;当然如果你不觉得麻烦&#xff0c;你也可以用HorizontalScrollView来试试&#xff09; 2.上面的扫描图&#xff0c;肯定是个Vi…