第10章、Python第三方库概览

第10章、Python第三方库概览

1、 Python第三方库的获取和安装

Python第三方库依照安装方式灵活性和难易程度有3个方法,这三个方法是:pip工具安装、自定义安装、文件安装。

  • (1)、pip工具安装

最常用且最高效的Python第三方库安装方式是采用pip工具安装。pip是Python官方提供并维护的在线第三方库安装工具。对于Python3.x版本环境,可以采用 pip3命令代替pip命令专为Python3.x版本安装
在这里插入图片描述
使用pip安装第三方库需要联网。
安装语法:
pip install库名
在这里插入图片描述

  • (2)、自定义安装

自定义安装指按照第三方库提供的步骤和方式安装。第三方库都有主页用于维护库的代码和文档。科学计算用的numpy的官方主页是:http://numpy.org。浏览网页找到下载链接。http://scipy.org/scipylib/download.html。进而根据提示步骤安装。
自定义安装一般适用于在 pip中尚无登记或安装失败的第三方库。

  • (3)、文件安装

由于Python某些第三方库仅提供源代码,通过pip下载文件后无法在 Windows 系统编译安装,会导致第三方库安装失败。在 Windows平台下所遇到无法安装第三方库的问题大多属于这类。

  • (4)、pip工具使用

除了进行第三方库安装之外,pip工具能够对第三方库进行基本的维护。执行pip -h将列出pip常用的子命令。
在这里插入图片描述
pip支持安装( install>、下载(download>、卸载( uninstall)、列表(list)、查看(show)、查找(search)等一系列安装和维护子命令。
pip 的uninstall子命令可以卸载一个已经安装的第三方库。
语法格式:
pip uninstall 库名
在这里插入图片描述
pip 的show子命令列出某个已经安装好库的详细信息。
语法格式:
pip show 库名
在这里插入图片描述
pip的list子命令可以列出当前系统中已经安装的第三方库。
语法格式:
pip list
在这里插入图片描述

2、 PyInstaller库概述

Pylnstaller是一个十分有用的Python第三方库,它能够在 Windows、Linux、MacOs等操作系统下将 Python源文件打包、变成直接可运行的可执行文件。
通过对源文件打包,Python程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。PyInstaller需要在命令行下用pip工具安装。
在这里插入图片描述
pip指令可以将PyInstaller库自动安装到Python解释器目录,与pip或pip3命令路径相同,可以直接在命令行调用。
Pylnstaller针对不同操作系统打包生成的可执行文件都不同。

3、 PyInstaller库与程序打包

使用PyInstaller库对Python源文件打包十分简单。
语法结构:
PyInstaller 源文件名
执行完毕后,源文件所在目录将生成dist和 build两个文件夹。其中,build目录是Pylnstaller存储临时文件的目录,可以安全删除。最终的打包程序在dist内部与源文件同中的目录中。目录中其他文件是可执行文件的动态链接库。
可以通过-F参数对Python源文件生成一个独立的可执行文件。
在这里插入图片描述
执行后在dist目录中出了a.exe文件,没有任何依赖库,执行它即可运行程序。使用Pylnstaller 库需要注意以下问题;
文件路径不能出现空格和英文句号.)
执行后在dist目录中出了a.exe文件,没有任何依赖库,执行它即可运行程序。使用Pylnstaller 库需要注意以下问题;
文件路径不能出现空格和英文句号(.)
源文件必须是UTF_8编码,暂时不支持其他编码类型。
在这里插入图片描述
pyinstaller命令不需要在Python源文件中增加代码,只需要通过命令进行打包即可。

# 假设我们有一个名为main.py的Python程序,其内容如下:


def greet():
    print("Hello, World!")

greet()
# 我们将使用PyInstaller将其打包成可执行文件。
# 
# 首先,确保已经安装了PyInstaller库。可以通过以下命令进行安装:
# 
# pip install pyinstaller
# 打开命令行终端,进入main.py所在的目录。
# 
# 在终端中运行以下命令进行打包:
# 
# pyinstaller main.py
# 这会生成一个dist文件夹,其中包含了打包后的可执行文件。
# 
# 在dist文件夹中找到生成的可执行文件,然后双击运行它。
# 
# 注意:在Windows系统上,生成的可执行文件通常是main.exe。
# 
# 这样,您就成功地使用PyInstaller将Python程序打包成可执行文件了。当您双击运行可执行文件时,将会看到程序输出"Hello, World!"。

4、 jieba库概述

由于中文文本的单词不是通过空格或者标点符号分割,中文及类似语言存在一个重要的“分词”问题。
jieba是 Python中一个重要的第三方中文分词函数库,能够将一段中文文本分割成中文词语的序列。jieba库需要通过pip指令安装。
在这里插入图片描述

jieba库支持三种分词模式:精确模式,将句子最精确地切开,适合文本分析;全模式,把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
对中文分词来说,jieba只需要一行代码。(英文文本不存在分词问题)

import jieba
print(jieba.lcut("计算机二级Python考试复习"))
#运行结果:
#['计算机', '二级', 'Python', '考试', '复习']

5、 jieba库与中文分词

jieba库主要提供中文分词功能,可以辅助自定义分词词典。
在这里插入图片描述
jieba.lcut(s)是最常用的中文分词函数,用于精确模式,即将字符串分割成等量的中文词组,返回结果是列表类型。

import jieba
print(jieba.lcut("计算机二级Python考试复习"))
#运行结果:
#['计算机', '二级', 'Python', '考试', '复习']

jieba.lcut(s,cut_all=True)用于全模式,即将字符串的所有分词可能均列出来,返回结果是列表类型,冗余性最大。

import jieba
print(jieba.lcut("计算机二级Python考试复习",cut_all=True))
#运行结果:
# ['全国', '国计', '计算', '计算机', '算机', '二级', 'Python', '考试', '复习']

相比精确模式,全模式会找到所有分词可能,比如“计算机”被分词为3个可能词语“计算”、“计算机”、“算机”。
jieba.lcut_for_search(s)返回搜索引擎模式,该模式首先执行精确模式,然后再对其中长词进一步切分获得最终结果。

import jieba
print(jieba.lcut_for_search("计算机二级Python考试复习"))
#运行结果:
#['全国', '计算', '算机', '计算机', '二级', 'Python', '考试', '复习']

相比精确模式,其中长词“计算机”被再次分词成“计算”、“算机”、“计算机”三个词语,存在一定冗余。
提示:精确模式因为不产生冗余,最为常用。
搜索引擎模式更倾向于寻找短词语,这种方式具有一定冗余度,但冗余度相比全模式较少。实例中,搜索引擎模式没有产生“国计”的分词结果,因为精确模式并未产生这个词语。
3种分词模式如何选择?看需求
如果希望对文本准确分词,不产生冗余,只能选择jieba.lcut(s)函数,即精确模式。如果希望对文本分词更准确,不漏掉任何可能的分词结果,请选用全模式。如果没想好怎么用,可以使用搜索引擎模式。
Jieba.add_word()涵数,用来向jiaba词库增加新的单词.

import jieba
jieba.add_word('全国计算机')
print(jieba.lcut("全国计算机二级Python考试复习"))
#运行结果:
# ['全国计算机', '二级', 'Python', '考试', '复习']

增加新单词后,当遇到改词语时将不再被分词。

6、wordcloud库概述

数据展示的方式多种多样,传统的统计图尽管很“科学”,但略显古板。尤其对于文本来说,更加直观、带有一定艺术感的展示效果需要很大,对于这类需求,词云特有的展示方式深得人心。
词云以词语为基本单元,根据其在文本中出现的频率设计不同大小以形成视觉上的不同效果,形成“关键云层”或“关键词渲染”,从而使用读者只要“一瞥”即可领略文本的主旨。这种展示方式已经成为文本展示的样板。
Wordcloud库是专门用于根据文本生成词云的Python第三方库,十分常用且有趣。
提示:词去
能够将文本转变成词云,也是一种必备能力。
有关wordcloud库的详细介绍可访问https://amueller.github.io/word cloud/
wordcloud 库地使用如下:

from wordcloud import WordCloud
txt ="I like Python,I am a hard worker"
wordcloud=WordCloud().generate(txt)
wordcloud.to_file('test.jpg')

在这里插入图片描述

7、 wordcloud库与可视化词云

在生成词云时,wordcloud默认会以空格或标点分隔符对目标文本进行分词处理。对于中文文本,分词处理需要由用户来完成。一般步骤是先使用jieba将文本分词处理,然后用join()以空格拼接,再调用wordcloud库函数。处理中文时还需要指定中文字体。例如,选择了微软雅黑( msyh.ttc)作为显示效果,需要将该字体文件与代码存放在同一目录下或在字体文件名前加上完整路径。

import jieba
from wordcloud import WordCloud
txt ="常抓不懈,进一步加强防溺水安全教育工作落实。\
各系要坚持对学生的安全教育管理工作做到常抓不懈,经常引导,反复告诫,\
引导学生掌握防范溺水的正确方法和基本知识,重点要关注在外实习、在校考研学生等,\
坚决防止学生溺水事故及其他意外事故的发生。强化家校联系,告知家长切实承担起学生离校后的监护责任,\
提醒督促家长在暑假期间对学生加强安全教育和监管,增强家长的安全意识、责任意识。"
words=jieba.lcut(txt)
newtxt=' '.join(words)
wordcloud=WordCloud(font_path='E:\python学习测试代码\msyhbd.ttc').generate(newtxt)
wordcloud.to_file('复习例子.jpg')

在这里插入图片描述
Wordcloud库的核心是WordCloud类,所有的功能都封装在WordCloud类中。使用时需要实例化一个 WordCloud类的对象,并调用其 generate(text)方法将text文本转化为词云。WordCloud在创建时有一系列可选参数,用于配置词云图片。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
wordcloud 可以生成任何形状的词云,为了获取形状,需要提供一张形状的图像。

import numpy as np
from PIL import Image
from wordcloud import WordCloud

# 读取文本文件
with open('data.txt', 'r', encoding='utf-8') as file:
    text = file.read()

# 读取心形图片
heart_mask = np.array(Image.open('heart.png'))

# 创建词云对象
wordcloud = WordCloud(font_path='simhei.ttf', background_color='white', mask=heart_mask)

# 生成词云
wordcloud.generate(text)

# 显示词云
image = wordcloud.to_image()
image.show()

8、选择题

(1)下面关于pip安装方式的说法中错误的是()
A. pip工具几乎可以安装任何Python第三库
B.pip 的download子命令可以下载第三方库的安装包并安装
C.pip可以安装已经下载的.whl安装文件
D.Python第三方库有三种安装方式,其中pip是最常用的方式。

(2)下面关于jieba库的描述中错误的是()
A.jieba库是一个中文分词工具
B.jieba 库利用基于概率的分词方法
C.jieba库提供增加自定义分词的功能
D. jieba库的分词模式分为模糊模式、精确模式、全模式和搜索引擎模式

(3)jieba库中搜索引擎模式的作用是()
A.精确地切开句子,适合文本分析
B.将句子中所有成词的语句都扫描出来
C.对长词再次切分,提高召回率
D.速度快,消除歧义

4)下面关于wordcloud库的描述中错误的是()
A.wordcloud 库是一个用于生成词云的库
B.wordcloud库生成中文词方法是根据空间分词
C. wordcloud库生成中文词云时输出乱码,故无法用于制作中文词云
D.wordcloud 库的大多数方法都封装在 WordCloud类里面

5)使用PyInstaller打包程序时,想要在dist文件夹中只生成一个单独的exe 文件,所需参数是()
A. --version
B. -clean
C.-onedir
D.-F

6)使用PyInstaller打包程序时,–path命令的作用是()
A.指定代码文件所在目录
B.指定 Pylnstaller所在目录
C.指定代码所依赖非标准库的路径
D.指定生成exe文件的目录

7)关于PyInstaller,下列说法错误的是()
A.Pylnstaller是用于将Python脚本打包成可执行文件的工具
B.Pylnstaller使用起来非常方便,在IDLE交互式环境下输入相应命令即可
C.使用-p添加多个非标准库的路径信息时,既可以多次使用-p,也可以使用分号分割路径
D.–clean参数用于清理打包过程中的临时文件

8)jieba 库函数jieba.lcut()返回值的类型是()
A.列表
B.迭代器
C.字符串
D.元组

9)以下不是 pip合法命令的是()
A.install
B.hash
C.help
D.update

10)使用PyInstaller打包含有中文字符的代码文件时,关于代码文件编码方式的说法中正
确的是()
A.必须UTF-8,无 BOM编码格式
B.必须是UTF-8.无BOM编码格式或者ANSI编码格式
C.可以是任何合法编码格式
D.必须是GBK编码格式

1B
2D
3C
4C
5D
6C
7B
8A
9B
10A

9、编程题

  1. 使用jieba.cut()对“Python是最有意思的编程语言”进行分词,输出结果,并将该迭代器转换为列表类型。
import jieba

text = "Python是最有意思的编程语言"

# 使用jieba.cut()进行分词
seg_generator = jieba.cut(text)

# 将分词结果转换为列表类型
seg_list = list(seg_generator)

# 输出分词结果
print(seg_list)

"""
运行以上代码,你将得到以下输出:

['Python', '是', '最', '有意思', '的', '编程语言']
"""

⒉ 使用jieba.cut()对“今天晚上我吃了意大利面”进行分词,输出结果,并使“意大利面”作为一个词出现在结果中。

import jieba

text = "今天晚上我吃了意大利面"

# 添加自定义词典
jieba.add_word("意大利面")

# 使用jieba.cut()进行分词
seg_generator = jieba.cut(text)

# 将分词结果转换为列表类型
seg_list = list(seg_generator)

# 输出分词结果
print(seg_list)
"""运行修改后的代码,你将得到以下输出:

['今天', '晚上', '我', '吃了', '意大利面']
"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值