青少年Python编程系列33Python第三方库安装和使用
Python成为最流行的语言之一,除了它的简单易学和语法简单外,还有一个重要的原因是Python有非常强大的第三方库。第三方库不是官方的内置库,而是由社区大量的开发者提供的,据统计目前第三方库的数量已经超过十多万种。这节课我们讲一下如何安装第三方库,并使用3种第三方库给大家讲解第三方库的使用方法。一、第三方库的安装方法
第三方库的安装有三种方式:pip安装、自定义安装、文件安装。pip安装是最常用的一种安装方式,使用的前提条件是电脑必须处于联网状态。
我们这里着重讲一下pip安装的方法。pip 命令是Python的内置命令。pip命令需要在Windows命令提示符窗口运行或者Linux、MAC OS系统的终端运行。由于Linux和MAC OS系统可能同时存在Python 2和Python 3两个版本,建议使用专门的pip3 命令安装。
执行pip -h命令可以查看pip常用的子命令。
我们了解一下常用的子命令:pip install:安装第三方库pip uninstall:卸载已安装的第三方库pip list:列出已经安装的第三方库的列表pip show:显示已经安装的第三方库的信息pip download:下载第三方库,但是不安装
我们以pip install为例,看一下怎么安装jieba库:
pip install jieba
安装后如果不需要使用,可以使用pip uninstall卸载:
pip uninstall jieba
使用pip show命令可以查看库的信息:
里面显示第三方库的名称、版本号、描述、首页作者、联系方式、协议、路径等信息。二、jieba库的使用
jieba库是一个中文分词的函数库,将中文文本进行分词获得单个词语。jieba库利用中文词库,分析汉字的关联概率,将概率大的组成词组,返回词组列表。
安装完jieba库后,可以在代码中输入"import jieba",如果程序不报错说明jieba库安装成功。
jieba库提供三种模式的分词:精确模式。jieba.lcut(s),能够将文本精确地切分开,切分结果不存在冗余单词。全模式。jieba.lcut(s, cut_all=True),把文本中所有可能的词组都找出来。搜索模式。jieba.lcut_for_search(s),在精确模式的基础上,对长词再进行切分。
我们通过一下代码来看一下效果:import jieba poem = """君不见黄河之水天上来奔流到海不复回 君不见高堂明镜悲白发朝如青丝暮成雪 人生得意须尽欢莫使金樽空对月 天生我材必有用千金散尽还复来 烹羊宰牛且为乐会须一饮三百杯 岑夫子丹丘生将进酒杯莫停 与君歌一曲请君为我倾耳听 钟鼓馔玉不足贵,但愿长醉不复醒 古来圣贤皆寂寞惟有饮者留其名 陈王昔时宴平乐斗酒十千恣欢谑 主人何为言少钱径须沽取对君酌 五花马千金裘呼儿将出换美酒与尔同销万古愁""" wordsa = jieba.lcut(poem) print("精确模式:", len(wordsa)) print(wordsa) wordsb = jieba.lcut(poem, cut_all=True) print("全模式:", len(wordsb)) print(wordsb) wordsc = jieba.lcut_for_search(poem) print("搜索模式:", len(wordsc)) print(wordsc)
运行结果如下:
精确模式: 100
["君不见", "黄河", "之水", "天上", "来", "奔流", "到", "海不复", "回", " ", "君不见", "高堂", "明镜", "悲", "白发", "朝如", "青丝", "暮成", "雪", " ", "人生", "得意", "须尽欢", "莫使", "金樽空", "对", "月", " ", "天生我材必有用", "千金", "散尽", "还", "复来", " ", "烹羊", "宰牛", "且", "为", "乐会须", "一饮", "三百杯", " ", "岑", "夫子", "丹丘", "生将", "进", "酒杯", "莫停", " ", "与", "君歌", "一曲", "请君", "为", "我", "倾耳", "听", " ", "钟鼓馔玉", "不足", "贵", ",", "但愿", "长醉", "不复醒", " ", "古来", "圣贤", "皆", "寂寞", "惟有", "饮者", "留其名", " ", "陈王", "昔时", "宴", "平乐", "斗酒", "十千", "恣欢", "谑", " ", "主人", "何为", "言少", "钱径", "须沽取", "对", "君酌", " ", "五花马", "千金", "裘呼儿", "将", "出换", "美酒", "与尔同销", "万古愁"]
全模式: 168
["君不见", "不见", "黄河", "之", "水", "天上", "上来", "奔流", "流到", "海", "不复", "回", "", " ", "", "君不见", "不见", "高堂", "明镜", "悲", "白发", "朝", "如", "青丝", "暮", "成", "雪", "", " ", "", "人生", "生得", "得意", "须尽欢", "尽欢", "莫", "使", "金", "樽", "空", "对", "月", "", " ", "", "天生", "天生我材必有用", "必有用", "有用", "千金", "散", "尽", "还", "复", "来", "", " ", "", "烹", "羊", "宰牛", "且为", "乐", "会", "须", "一", "饮", "三百", "三百杯", "", " ", "", "岑", "夫子", "丹丘", "生", "将进酒", "进酒", "酒杯", "莫", "停", "", " ", "", "与", "君", "歌", "一曲", "请", "君", "为", "我", "倾耳", "听", "", " ", "", "钟鼓", "钟鼓馔玉", "不足", "贵", ",", "但愿", "长", "醉", "不复", "醒", "", " ", "", "古来", "圣贤", "皆", "寂寞", "惟有", "饮", "者", "留", "其", "名", "", " ", "", "陈", "王", "昔时", "宴", "平乐", "斗", "酒", "十千", "恣", "欢", "谑", "", " ", "", "主人", "何为", "言", "少", "钱", "径", "须", "沽", "取", "对", "君", "酌", "", " ", "", "五花", "五花马", "千金", "裘", "呼", "儿", "将", "出", "换", "美酒", "与", "尔", "同", "销", "万古", "万古愁"]
搜索模式: 112
["不见", "君不见", "黄河", "之水", "天上", "来", "奔流", "到", "不复", "海不复", "回", " ", "不见", "君不见", "高堂", "明镜", "悲", "白发", "朝如", "青丝", "暮成", "雪", " ", "人生", "得意", "尽欢", "须尽欢", "莫使", "金樽空", "对", "月", " ", "天生", "有用", "必有用", "天生我材必有用", "千金", "散尽", "还", "复来", " ", "烹羊", "宰牛", "且", "为", "乐会须", "一饮", "三百", "三百杯", " ", "岑", "夫子", "丹丘", "生将", "进", "酒杯", "莫停", " ", "与", "君歌", "一曲", "请君", "为", "我", "倾耳", "听", " ", "钟鼓", "钟鼓馔玉", "不足", "贵", ",", "但愿", "长醉", "不复", "不复醒", " ", "古来", "圣贤", "皆", "寂寞", "惟有", "饮者", "留其名", " ", "陈王", "昔时", "宴", "平乐", "斗酒", "十千", "恣欢", "谑", " ", "主人", "何为", "言少", "钱径", "须沽取", "对", "君酌", " ", "五花", "五花马", "千金", "裘呼儿", "将", "出换", "美酒", "与尔同销", "万古", "万古愁"]三、wordcloud库的使用
wordcloud库是一个词云展示的第三方库,能够以直观艺术的方式对文本中出现频率较高的词语进行视觉化的展示。在使用wordcloud库之前,我们需要使用pip install wordcloud安装wordcloud库。
使用云词库之前,我们需要先把需要做词云展示的内容保存到文本文档中。下面先看具体的例子:
文本文档中有如下内容:
代码如下:from wordcloud import WordCloud f = open(r"D:yylj.txt" , "r", encoding="utf-8") text = f.read() f.close() wc = WordCloud(font_path=r"C:WindowsFontsMSYHL.TTC", width=800,height=600,background_color="white").generate(text) wc.to_file(r"D:wordcloud.png")
我们重点看第6行的代码中的参数:font_path:字体路径。Windows系统中字体都存放在C:WindowsFonts下,Linux系统中字体存放在/usr/share/fonts/路径下。每台电脑中的字体有区别,需要打开目录自己查看。width:词云图的宽度,单位像素height:词云图的高度,单位像素background_color:背景颜色,默认值为blac
程序运行后生成词云图的图片,效果如下:
四、jieba库和wordcloud库结合使用
在实际生成词云图片中,我们经常使用jieba库先得到词语,再生成词云图,让词语的信息更加突出,再绘制词云图。我们看下面的例子:from wordcloud import WordCloud import jieba f = open(r"D:yylj.txt" , "r", encoding="utf-8") text = f.read() f.close() text = " ".join(jieba.lcut(text)) wc = WordCloud(font_path=r"C:WindowsFontsMSYHL.TTC", width=800,height=600,background_color="white").generate(text) wc.to_file(r"D:wordcloud2.png")
生成出来的词云图我们看一下与刚刚的区别:
五、pyinstaller库的使用
pyinstaller库可以将Python程序打包成可执行文件。安装该库使用pip install pyinstaller即可。我们可以找出前面使用turtle库画的任意一张图的Python程序代码做实验。
马上圣诞节了,我写了一个圣诞树的代码,我们就用用它为例子演示一下pyinstaller库的使用吧。from turtle import * speed(0) # 蓝色背景 penup() goto(0, -250) pendown() color("lightskyblue") begin_fill() circle(250) end_fill() # 树干 penup() goto(-15, -50) pendown() color("brown") begin_fill() for i in range(2): forward(30) right(90) forward(40) right(90) end_fill() y = -50 width = 240 height = 25 # 树绿色部分 while width > 20: width = width - 30 x = 0 - width / 2 color("green") penup() goto(x, y) pendown() begin_fill() for i in range(2): forward(width) left(90) forward(height) left(90) end_fill() y = y + height # 星星 penup() goto(-15, 150) pendown() color("yellow") begin_fill() for i in range(5): forward(30) right(144) end_fill() # 底部文字 penup() goto(-130, -150) color("red") write("MERRY CHRISTMAS", font=("Arial", 20, "bold")) hideturtle() done()
pyinstaller库是在命令提示符中使用,不是在代码中运行。我们看具体的使用方法:
我们打开保存代码的文件夹,并在文件路径框中输入cmd回车,会弹出命令提示符的窗口,并处于当前目录下:
在命令提示符中输入:pyinstaller -F ChristmasTree.py,即可生成如下图所示的文件:
打开dist文件,我们就能看到生成出来的可执行文件了。
pyinstaller命令有好几个可选参数:
可选选项
功能说明
-F
在dist目录下生成单个可执行文件
-D
在dic目录下生成可执行文件和依赖文件
-w
指定程序运行时,不显示命令行窗口
-i
指定打包程序的图标,需要指名图标.ico文件的路径
--clean
清理打包过程中生成的临时文件
-h
查看pyinstaller库的帮助信息
有兴趣的同学可以自己把每个命令都试一遍。
第三方库的数量是非常巨大的,学习第三方库只要记住以下三个步骤:
1、使用pip命令下载安装第三方库
2、查看第三方库的文档
3、导入并使用六、课后思考题
1、选择题
Python中能够用于安装第三方库的命令是()
A. help B. pip C. download D.show
2、选择题
下列说法正确的是()
A. 使用wordcloud库可以生成词云图,图像化展示文本的关键信息
B. 使用pyinstaller库可以生成词云图,图像化展示文本的关键信息
C. pyinstaller库不能生成可直接运行的程序
D. wordcloud库如果不结合jieba库,就无法生成词云
3、编程题
将下列一段文章的文字内容进行分词后生成词云图:
冬天不像夏天,没入深夜,路上已静悄悄的,再加上这里本就人烟稀少,更是静的可怕。一个人静静的走着,就这样静静的走着,任凭影子拉的长长的。你呢?怎么不打个电话? 是不是发信了我没看见?掏出手机,空空的,没有。继续走吧。怎么这么静呢?没有鸟叫,也没有小虫的唧唧声。哎,不可能有嘛,小傻瓜,这是冬天啊。冬天?怎么也没人呢?小猫小狗也没有,偶尔有辆车疾驰而过,赶趟似的。手机依然没动静。不看了,每次看过,都是沮丧。一辆车疾驰而过又停下,耳边传来一声大喝。叫我吗?转过身,看一眼,又迅速转过来,心跳开始加快。不会是坏人吧 !脚步不由得加快,若遇到坏人,怎么办。你呢?在哪里呢?你说要保护我的。四十分钟的路,有一半了吧。还好,没事。继续走吧。七、上节课思考题答案
1、D
2、D
3、参考代码class Vehicle(object): def __init__(self, brand, weight, height): self.brand = brand self.weight = weight self.height = height class Car(Vehicle): def __init__(self, brand, weight, height, nuclear): super().__init__(brand, weight, height) self.nuclear = nuclear def print_info(self): print(self.brand, self.weight, self.height, self.nuclear) car = Car("Ford", 1250, 1600, 5) car.print_info()