python 库的使用
最大第三方库网址:https://pypi.org
安装方法
1. 使用pip命令安装第三方库。(命令行下执行,联网安装)
D:\>pip -h #列出该命令的帮助信息
D:\>pip install <第三方库名> #安装指定的第三方库
D:\>pip install -U <第三方库名> #使用-U标签更新已安装的第三方库
D:\>pip uninstall <第三方库名> #卸载已经安装的指定的第三方库
D:\>pip download <第三方库名> #下载但不安装指定的第三方库
D:\>pip show <第三方库名> #列出指定第三方库的详细信息(库的介绍、使用方法)
D:\>pip search <关键词> #根据关键词在名称和介绍中搜索第三方库
D:\>pip list #列出当前系统已经安装的第三方库
2. 集成安装方法
结合开发程序安装,安装Anaconda
, 相对标准的数据开发环境,比idle
更加丰富多样,支持800
个第三方库。
网址:https://www.continuum.io
3. 文件安装的方法。
一、time库的使用
1.time库是python中处理时间的标准库。
1.1 使用方法:(最典型最直接的python标准库的使用方法)
import time
time.<b>()
1.2 time库包含三类函数:
1. 时间获取:time()
ctime()
gmtime()
1.time():获取当前的时间戳,得到浮点数,是计算机内部的时间值。
代码:>>>import time
time.time()
表示的是1970年1月1日00:00到当前时间,以秒为单位的数值。
2.ctime():获取当前时间并以异读方式表示,返回字符串。
代码:>>>import time
time.ctime()
2.gmtime():获取当前时间,该时间计算机可以进行处理。
代码:>>>import time
time.gmtime()
可以生成struct_time格式。
2. 程序计时:
sleep()
和perf_counter()
:
测量起止动作所经历时间的过程,包括测量时间perf_counter()
和产生时间sleep()
两部分。
perf_counter()
:返回一个CPU级别的精准时间计数值,单位为秒,由于起点值不确定,连续调用差值才有意义。(可以获取计算机CPU以其频率运行的时钟,以纳秒计算。)
>>>start = time.perf.counter()
>>>end = time.perf.counter()
>>>end - start
sleep()
:让程序休眠s秒时,单位是秒,可以是浮点数类型。
>>>def wait():
time.sleep(2.2)
>>>wait() #程序将等待2.2秒后退出,即程序休眠2.2秒,停滞。
3. 时间格式化\输出:
strftime()
:
将时间以合理方式展示出来的方法,类似字符串的格式化,需要一个展示模板,展示模板由特定的格式化控制符组成。
strptime()
:
可以将一个字符串变成一个计算机可以内部操作的一个时间
strftim (tpl,ts):有两个参数
第一个参数tpl:格式化的模板字符串参数,定义输出效果。
第二个参数ts:计算机内部的时间类型的变量,是gmtime()输出的格式。
举例:>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S,t) (#六个时间格式化控制符)
‘2021-04-28 12:59:46’
strptim (str,tpl):有两个参数
第一个参数str:字符串形式的时间值
第二个参数tpl:格式化模板字符串,定义输出效果。
可以将一个字符串变成一个计算机可以内部操作的一个时间,可进一步转化为时间浮点数。
4. 控制符:所有的控制符都是以%加字符的形式出现。
%A
:取值范围是Monday~Sunday,表示星期。
%a
:取值范围是Mon~Sun,表示星期缩写。
%B
:取值范围是January~December,表示月份名。
%b
:取值范围是Jan~Dec,表示月份名缩写。
%d
:取值范围是01~31,表示月份名缩写。
%M
:取值范围是00~59,表示分钟。
%m
:取值范围是01~12,表示月份。
%H
:取值范围是00~23,表示24小时时间。
%I
:取值范围是01~12,表示12小时时间。
%p
:取值范围是AM/PM,表示上下午。
%S
:取值范围是00~59,表示秒。
%Y
:取值范围是0000~9999,表示年份。
二、random库的使用(标准库)
2. random库是python中生成随机数的标准库。
2.1 伪随机数:
计算机不能产生真正的随机数,只有采用梅森旋转算法生成的伪随机数,也被称之为随机数。
2.2 random库概述:
random库包括两类函数,常用共8个。
基本随机数函数:seed(),random()
扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
2.3 基本随机数函数:
随机数种子根据算法来产生随机数。(梅森旋转算法)
seed(a=None):初始化给定的随机数种子
>>>random.seed(10) #产生种子10所对应的序列
random函数:random()
生成一个[0.0,1.0)之间的随机小数。
>>>random.random()
0.5714025946899135
举例:
>>>import random
>>>random.seed(10)
>>>random.random()
0.5714025946899135
>>>random.random()
0.4276543909864132 #种子只需要给一次,随机数随着每次调用而产生不同随机数
注意:当不给种子时,默认的种子是当前第一次调用random函数时的当前系统所对应的时间,该时间精确到微妙,不可再现随机过程,不能复现。
>>>import random
>>>random.seed(10)
>>>random.random()
0.5714025946899135
>>>random.seed(10)
>>>random.random()
0.5714025946899135 #产生相同的随机数
2.4 扩展随机数函数:
1. randint(a,b)
:生成一个[a,b]之间的整数。
>>>random.randint (20,100)
88
2. randrange(m,n[,K])
:生成一个[m,n)之间以k为步长的随机整数。
>>>random.randrange(10,100,10)
50
3. getrandbits(K)
:生成一个k比特长的随机整数。
>>>random.getrandbits(16)
37785 #16个比特长
4. uniform(a,b)
:生成[a,b]之间的随机小数。
>>>random.uniform(10,100) #python小数为小数点后16位。
12.865309862431567
5. choice(seq)
:从序列seq中随机选择一个元素。
>>>random.choice([1,2,7,8,9,0])
2
6. shuffle(seq)
:将序列seq中的元素随机排列,返回打乱后的序列。
>>>s=[1,2,3,4,5,6] #将一个序列赋值给s,python中代码可以写在一行用,需要用;隔开,但是不建议如此写,可读性比较差。
>>>random.shuffle(s)
>>>print(s)
[2,4,6,1,5,3]
三、PyInstaller库的使用
(第三方库,需要额外安装,不是标准库,运用windows中的command安装),只有打包才需要安装pyinstaller,打包之后的.exe
可以在计算机中直接执行,不需要安装python环境
,也不需要安装pyinstaller
。
3. 安装命令——cmd
下输入:pip install pyinstaller。
3.1 使用说明:使用cmd命令行,不能采用IDLE环境运行pyinstaller。
pyinstaller -F <文件名.py>
3.2 常用参数:
1.-h
——查看帮助,pyinstaller -h
可以显示工具所完成的功能
2.--clean
——清理打包过程中的临时文件,pyinstaller --clean
删除打包 文件
3.-D,--onedir
——默认值,生成dist文件
4.-F,--onefile
——在dist文件夹中只生成独立的打包文件,可以完整实现.py
文件的功能
5.-i<图标文件名.ico>
——指定打包程序使用的图标(icon)文件,关联一个图标。
pyinstaller -i LG.ico -F Ligou.py #将一个.py文件与一个图标相关联,产生一个包含预定图标的文件,实现打包操作。
四、jieba库的使用(第三方库)——中文分词
4 安装方式:
cmd下使用——pip install jieba
(计算机要联网)
4.1 主要功能:
jieba分词依靠中文词库,有三种模式——精确模式(把文本精确分开,不存在冗余单词)、全模式(把文本中所有可能的词语扫描出来,有冗余)、搜素模式(在精确模式的基础上,对长词再次切分)
4.2 常用参数:
1.jieba.lcut(s)
——精确模式,返回一个列表类型的分词结果
>>>jieba.lcut("桂林是一个美丽的地方") #l表示一个列表
['桂林','是','一个','美丽的','地方']
2.jieba.lcut(s,cut_all=True)
——全模式,返回一个列表类型的分词结果,存在冗余
>>>jieba.lcut("桂林是一个美丽的地方",cut_all=True) #l表示一个列表
['桂林','林是','一个','美丽','的','地方']
3.jieba.lcut_for_search(s)
——搜索引擎模式,返回一个列表类型的分词结果,存在冗余
>>>jieba.lcut_for_search("桂林是一个美丽的地方") #l表示一个列表
['桂林','林是','一个','美丽','的','美丽的','美丽','的','地方'] #先按照精确方法分词,之后对长的词再次分词
4.jieba.add_word(w)
——向分词词典增加新词w
jieba.add_word("好好学习") #将定义的新词加入到词库中
五、wordcloud库的使用(第三方库)——词云展示
可以将一段文本变成词云,词云就是将词语通过图形可视化的方式直观和艺术的展示出来。
5 安装方式:pip installer wordcloud (cmd下)
5.1 使用说明:
1.wordcloud库把词云当作一个WordCloud对象
,使用库的时候,库名是全小写的wordcloud
,但是这个库中的具体词云,是一个有大写有小写的WordCloud,本身是一个对象。
2.wordcloud
可以根据文本中词语出现的频率等参数绘制词云。
3.绘制词云的形状、尺寸、颜色都可以设定。
wordcloud.WordCloud() #在wordcloud小写库中的WordCloud是一个代表
一个文本对应的词云的对象,一个词云就是一个WordCloud对象。
5.2 wordcloud库常规方法:
注意:以WordCloud对象为基础,可以向对象中配置参数、加载文本、输出文件,将程序对应的词云输出到文件中。
w = wordcloud.WordCloud() #用wordcloud库中的WordCloud来表明一个词云,生成一个词云对象,对象的变量是w。
可以向词云对象w赋予特定的文本参数及操作,将词云输出成文件
常规方法:
1.w.generate(txt)
——向WordCloud对象w中加载文本txt**
>>>w.generate("LG is a person") #指的是有一个词云对象w,将一段文本加载到词云对象中,词云相当于一个程序逻辑。
然后我们向他输入一段文本,程序逻辑中就会根据文本绘制出一个词云图像
2.程序的词云输出成文件才能看到词云的效果:w.to_file(filename)
,将词云输出为图像文件,.png或.jpg
格式。
>>>w.to_file("oto.png") #oto.png为文件名
3.词云绘制的步骤介绍:(配置对象-加载词云文本-生成图片
)
一、先生成一个词云对象,配置对象参数。
二、采用w.generate(txt)
方法加载一段文本到词云对象中。
三、将程序词云对象输出成一个文件,变成一个可以看到的图形文件。
import wordcloud
c = wordcloud.WordCloud() #生成一个词云对象赋值给变量c
c.generate("LG is a fog") #将一段文本加载到词云对象中
c.to_file("Htggg.png") #将词云效果输出到Htggg.png文件中
最终会生成一个默认宽度为400像素和高度为200像素的图片
由图片变成词云,wordcloud做了四件
事情:
一、分隔:首先对于一个文本,wordcloud库以空格为分隔符号,将文本分隔为单词
二、统计:在文本中统计单词出现的次数,次数越多,显示的词云效果会越大,字数少的,显示的字体会较小,将很短的单词过滤掉。
三、字体:根据统计配置字号,根据统计单词出现的次数为不同单词配置不同的字号。
四、布局:布局单词的颜色环境尺寸。
注意:只需要给wordcloud库一个由空格分隔的大字符串
就可以通过代码实现词云效果。
5.3 wordcloud库配置对象参数:
1.width
——指定词云对象生成的宽度,默认是400像素。
w = wordcloud.WordCloud(width=500)
2.height
——指定词云对象生成的高度,默认是200像素。
w = wordcloud.WordCloud(height=500)
3.min_font_size
——指定词云中字体的最小字号,默认是4号。
w = wordcloud.WordCloud(min_font_size=16)
4.max_font_size
——指定词云中字体的最大字号,默认是根据高度自动调节。
w = wordcloud.WordCloud(max_font_size=21)
5.font_step
——指定词云中步进间隔,默认是1。(只出现一次的单词用最小字号显示,次数越多,字号越大,从最小字号增加到最大字号时,其增加过程中的步进间隔叫做font_step
)
w = wordcloud.WordCloud(font_step=3)
6.font_path
——指定字体文件的路径,默认为none。可以指定显示词云中出现字符的字体,在程序设计中指定一个路径,其实就是指定字体文件,默认的情况下字体选择默认的字体来显示词云,比如微软雅黑字体。(比较重要)
w = wordcloud.WordCloud(font_path="msyh.ttc") #赋一个字体文件,文件名叫msyh.ttc,
其中msyh指的是微软雅黑,.ttc是字体文件的后缀。
可以用font_path指定中文出现的文件字体
7.max_words
——指定词云显示的最大单词数量,默认是200。
w = wordcloud.WordCloud(max_words=28)
8.stop_words
——指定词云的排除词列表,即不显示的单词列表。
w = wordcloud.WordCloud(stop_words={“LG”}) #不让LG出现在词云效果中,给定一个集合类型,排除集合中出现的单词内容
9.mask
——默认的词云效果是矩形,指定词云的形状。用mask参数
给定一个图片文件的特定形式,需要引用imread()
函数
>>>from spicy.misc import imread #调用函数
>>>mk = imread("lg.png") #读取图片效果
>>>w = wordcloud.WordCloud(mask=mk) #改变显示图形形状
9.background_color
——指定词云图片的背景颜色,默认为黑色
。
w = wordcloud.WordCloud(background_color="green") #更改词云背景颜色为绿色
应用实例1:(英文词云)
import wordcloud
txt = "LG eat apple,you hate it"
w = wordcloud.WordCloud(\
background_color = "green")
w = generate(txt)
w.to_file("plgg.png")
应用实例2:(中文词云,wordcloud库用空格来分隔单词,中文中没有办法使用空格来区分单词,需要先对中文文本进行分词,采用jieba库
)
import jieba
import wordcloud
txt = "广西桂林是一个风景秀丽的地方,很多人喜欢那儿"
w = wordcloud.WordCloud(\
width = 1000,font_path="mysh.ttc",height=800)
w.generate(" ",join(jieba.lcut(txt))) #向词云对象中加载一段由空格区分的单词文本
#先用jieba.lcut对文本进行分词,生成一个列表变量,其中的每一个元素是分隔之后的单词
然后需要这样的单词以文本的形式用空格进行分隔,采用.join函数,在元素之间增加空格。
w.to_file("llgg.png") #将词云输出
六、os库的使用(第三方库)——提供通用、基本的操作系统交互功能
6 主要介绍:
路径操作:os.path
子库,处理文件路径信息,以path
为路口,用于操作和处理文件的路径。(路径其实就是一种字符串
)
import os.path
import os.path as op #op指的是子库的别名。
一些os.path
子库的函数如下:
1-os.path.abspath(path)
——返回path
在当前系统中的绝对路径。
>>>os.path.abspath("file.txt") #返回file.txt的绝对路径
'c:\\Users\\演绎秋景\\file.txt
2-os.path.normpath(path)
——归一化path
的表示形式,统一用\\
分隔。(在python中,可以使用一个\
或\\
或者//
等几种方式表示文件的路径,使用normpath
函数可以将这样的路径统一为使用//
的形式。路径其实就是一种字符串,归一化后便于字符串处理。)
>>>os.path.normpath("C://Python//file.txt") #调用函数归一化路径处理
'C:\\Python\\file.txt' #归一化路径结果
3-os.path.relpath(path)
——返回当前程序与文件之间的相对路径(relative path)
>>>os.path.relpath("C://Python//file.txt") #返回python程序与所调用的文件之间的相对路径
'..\\..\\..\\..\\..\\Python\\file.txt' #返回当前程序与目录文件的相对路径结果
4-os.path.dirname(path)
——返回python中的目录名称。
>>>os.path.dirname("C://Python//file.txt")
'C://Python' #返回目录名称
5-os.path.basename(path)
——返回python中最后的文件名称。
>>>os.path.dirname("C://Python//file.txt")
'file.txt' #返回文件名称
6-os.path.join(path,*paths)
——组合path和paths,返回一个路径字符串。
>>>os.path.join("C:/", "Python/file.txt") #能够将path和*path的路径进行组合并返回一个字符串
'C:/Python/file.txt' #组合并返回
7-os.path.exists(path)
——判断path路径对应文件或目录是否存在,返回True或False。
>>>os.path.exists("C://Python//file.txt") #判断目录是否存在
True #文件存在,返回结果
8-os.path.isfile(path)
——判断path所对应是否为已存在文件,返回True或False。
>>>os.path.isfile("C://Python//file.txt") #判断目录是否存在
True #文件存在,返回结果
9-os.path.isdire(path)
——判断path所对应是否为已存在目录,返回True或False。
>>>os.path.isdir("C://Python//file.txt") #判断目录是否存在
False #目录不存在,返回结果
文件访问时间相关的函数:
10-os.path.getatime(path)
——返回path对应文件或目录上一次的访问(access)时间。
>>>os.path.getatime("C://Python//file.txt")
1618356722.7551715 #返回时间对应的内部数字值
11-os.path.getatime(path)
——返回path对应文件或目录最近一次的修改(modify)时间。
>>>os.path.getmtime("C://Python//file.txt")
1618356722.7551715 #返回时间对应的内部数字值
12-os.path.getctime(path)
——返回path对应文件或目录的创建(create)时间。
>>>time.ctime(os.path.getctime("C://Python//file.txt") )
'Sun Feb 11 13:34:54 2021' #调用time.ctime将内部数值转换为可读的时间。
13-os.path.getsize(path)
——返回path对应文件的大小,以字节
为单位。
>>>os.path.getsize("C://Python//file.txt")
177266
2. 进程管理:启动系统中的其它程序(使用编写的python程序,去调用其它的外部程序)
os.system(command) #执行程序或命令command
在Windows操作系统中,调用os.system函数,将返回调用这个函数结果的返回信息
。
>>>import os
>>>os.system("C:\\Windows\\System64\\calc.exe")
0 #返回一个0
#将计算器程序的文件路径作为参数放置到os.system函数中。
执行该语句后,计算器程序运行出来,本函数调用结束返回一个0,指的是程序正确运行。
在Windows操作系统中,调用os.system函数,可以给该程序赋予相关的参数。
>>>import os
>>>os.system("C:\\Windows\\System64\\mspaint.exe \
D:\\Python\\LG.png #给定画图程序并指定一个文件赋予默认程序,让其默认打开,此处该程序为画图程序mspaint。
0 #返回一个0
3. 环境参数:获得或改变系统硬件信息等环境参数。
1-os.chdir(path)
——修改(change)当前程序操作的路径。
>>>os.chdir("D:") #将当前程序所关心的当前路径变换为D盘根目录下
2-os.getcwd()
——返回程序当前的路径。
>>>os.getcwd()
'D:\\'
3-os.getlogin()
——获得当前系统登录的用户名称。
>>>os.getlogin()
'LG'
4-os.cpu_count()
——获得当前系统的cpu数量。
>>>os.cpu_count()
7
5-os.urandom(n)
——获得n个字节的随机字符串,通常用于与操作系统相关的加解密运算。
>>>os.urandom(8)