关键词:
梦想还是要有的,万一别人问呢?
作者:不吃西红柿
简介: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 datetime
server=Flask(__name__)
@server.route('/time',methods=['post','get'])
def get_time():
now=str(datetime.datetime.now())#把当前时间转换成字符串
return "当前的时间是:%s"%now
server.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,datetime
def read_excel():
# 打开文件
workbook = xlrd.open_workbook(r'F:\\demo.xlsx')
# 获取所有sheet
print 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 rows
print 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).ctype
if __name__ == '__main__':
read_excel()
5、数据分析:numpy
NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等。
NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。
三角函数
NumPy 提供了标准的三角函数:sin()、cos()、tan()。
import numpy as np
a = 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 Image
image_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 Image
def roll(image, delta):
""" 向侧面滚动图像 """
xsize, ysize = image.size
delta = delta % xsize
if delta == 0: return image
part1 = 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 image
if __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和正方形。这些形状的形成有四个方格。形状是跌倒。俄罗斯方块游戏的对象是移动和旋转的形状使他们适合尽可能多。
如果我们设法形成一个行,该行摧毁我们得分。我们直到我们玩俄罗斯方块游戏。
PyQt5是一种用于创建应用程序的工具。还有其他的库是针对创建电脑游戏。
然而,PyQt5和其他应用程序工具包可以用来创建简单的游戏。
创建一个电脑游戏是一个提高编程技能的很好的方发。
10、游戏开发:pygame
- Pygame是一组跨平台的Python模块, 用于创建视频游戏。
- 它由旨在与Python编程语言一起使用的计算机图形和声音库组成。
- Pygame由Pete Shinners正式编写, 以取代PySDL。
- Pygame适合于创建客户端应用程序, 这些应用程序可以包装在独立的可执行文件中。
import pygame
pygame.init()
screen = pygame.display.set_mode((400, 500))
done = False
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pygame.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常用命令
序号 | 方法 | 功能 |
1 | os.access(path, mode) | 检验权限模式 |
2 | os.chdir(path) | 改变当前工作目录 |
3 | os.chflags(path, flags) | 设置路径的标记为数字标记。 |
4 | os.chmod(path, mode) | 更改权限 |
5 | os.chown(path, uid, gid) | 更改文件所有者 |
6 | os.chroot(path) | 改变当前进程的根目录 |
7 | os.close(fd) | 关闭文件描述符 fd |
8 | os.closerange(fd_low, fd_high) | 关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略 |
9 | os.dup(fd) | 复制文件描述符 fd |
10 | os.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 官网 http://www.numpy.org/
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 Header
sender = '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() # 自动验证嵌入测试
【求评论、求点赞、求收藏】
❤c站最全python标准库总结❤(学习宝典,建议收藏)(代码片段)
...展!【求评论、求点赞、求收藏】下一篇:❤C站最全Python库总结丨标准库+高级库(万字长文,建议收藏)http 查看详情
c站最全python机器学习深度学习库总结(内含大量示例,建议收藏)(代码片段)
C站最全Python机器学习、深度学习库总结(内含大量示例,建议收藏)前言python常用机器学习及深度学习库介绍总结与分类python常用机器学习及深度学习库总结分类更多前言目前,随着人工智能的大热,吸引了... 查看详情
2023最新整理!全网最全python标准库总结(学习宝典,建议收藏)(代码片段)
标准库Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python... 查看详情
jstl总结
jstl1.2(JavaStandardtagLibrary)java标准标签库核心标签库c标签库(最常用)国际化标签(fmt标签库)EL函数库(fn函数库)xml标签库(x标签库)sql标签库(sql标签库)(jstl中文文档网址:http://www.runoob.com/jsp/jsp-jstl.html)"核心"库通用<... 查看详情
python标准库tempfile的使用总结(代码片段)
...的文件,它的扩展名通常是“.temp”。本文用于记录使用Python提供的临时文件API解决实际问题的过程,主要内容包括问题描述、tempfile库简要介绍、解决方案等。Python标准库tempfile的使用总结临时文件是计算机程序存储临时数据的... 查看详情
快收藏!史上最全156个python网络爬虫资源(代码片段)
本列表包含Python网页抓取和数据处理相关的库。网络相关通用urllib-网络库(标准库)requests-网络库grab-网络库(基于pycurl)pycurl-网络库(与libcurl绑定)urllib3-具有线程安全连接池、文件psot支持、高可用的PythonHTTP库httplib2-网络库RoboBrowser-... 查看详情
程序员应如何理解标准库(代码片段)
????????关注后回复 “进群” ,拉你进程序员交流群????????作者丨码农的荒岛求生来源丨码农的荒岛求生记得当年在学了C/C++语言后一直有这样的疑惑,常用的printf函数以及C++中的cout函数到底是在哪里实现的... 查看详情
jsp标准标签库(jstl)(jspstandardtaglibrary)
[1]JSTL简介 >JSTL是JSP的标准标签库 >JSTL为我们提供了一些常用的标签,供我们日常开发使用(if、if...else、遍历、日期格式化) >标签库 -core:核心标签库 -最常用的一个标签库,... 查看详情
python标准库——os模块(代码片段)
python标准库——os模块 hello!我是wakeyo_J,每天一个konwledgepoint,一起学python,让技术无限发散。os模块python标准库——os模块1.os库基本介绍2.os库之路径操作3.os库之进程管理4.os库之环境参数5.案例总结 目前&... 查看详情
python标准库
Python语言参考手册 描述了Python语言的具体语法和语义,这份库参考则介绍了与Python一同发行的标准库。它还描述了通常包含在Python发行版中的一些可选组件。Python标准库非常庞大,所提供的组件涉及范围十分广泛,... 查看详情
最全git命令总结
新建代码库$gitinit<->在当前目录新建一个git代码库$gitinit[project-name]<->新建一个目录,将其初始化为git代码库$gitclone[url]<->下载一个项目和它的整个代码历史配置$gitconfig--list<->显示当前的git配置$gitconfig-e[--global]&l... 查看详情
办公自动化全网最全python中openpyxl库用法(代码片段)
python中的opepyxl库是一个用于读写Excel2010版本以上的xlsx/xlsm/xltx/xltm文件的Python库,拥有十分强大的功能。此篇文章介绍openpyxl中的大部分功能。一.创建新工作簿importopenpyxlasVBApath="C:/openpyxl/文件1.xlsx"#文件1.xlsx在文件... 查看详情
史上最全的opencv入门教程!这篇够你学习半个月了!万字长文入门(代码片段)
一、PythonOpenCV入门欢迎阅读系列教程,内容涵盖OpenCV,它是一个图像和视频处理库,包含C++,C,Python和Java的绑定。OpenCV用于各种图像和视频分析,如面部识别和检测,车牌阅读,照片编辑,高级机器人视觉,光学字符识别等等... 查看详情
c++boost库分类总结
c#程序员写c++,各种不适应。尤其是被内存操作和几十种字符串类型的转换,简直疯了,大小写转换竟然要手动写代码实现。Boost看介绍不错,也不知道能不能跨平台。过几天要上linux写c++,也不知道这东西能不能用。转自:https://... 查看详情
python基础|timerandomcollectionsitertools标准库详解
⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。 查看详情
python万字博文教你玩嗨selenium库,建议收藏!(代码片段)
python万字博文教你玩嗨selenium库,建议收藏!文章目录python万字博文教你玩嗨selenium库,建议收藏!首先安装插件基本用法无界面模式运行,后台运行标签定位方法根据标签的id属性进行定位根据标签的name属性... 查看详情
高级库介绍
...库,提供许多高级数值编程工具,如矩阵、矢量等Pandas(PythonDataAnalysisLibrary): 是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所... 查看详情
宝藏级全网最全的matplotlib详细教程-数据分析必备手册(4.5万字总结)(代码片段)
【宝藏级】全网最全的Matplotlib详细教程(4.5万字总结)1.数据分析中常用图折线图:柱状图:直方图:散点图:饼状图:箱线图:更多参考:2.Matplotlib库安装:基本使用:设置图的信息... 查看详情