美文网首页Python库
这5个有趣的Python库带你花式编码!

这5个有趣的Python库带你花式编码!

作者: 程序员霖霖 | 来源:发表于2021-03-04 16:59 被阅读0次

    Python是如今最流行的编程语言之一,这点也给它本身带来很多好处,其中之一就是,为了方便进行程序开发,它拥有了大量优秀的库,如Pandas、Numpy、Matplotlib、SciPy等。

    不过,本文不打算介绍那些以实用为主要“卖点”的库,而是带你走进一些极为有趣的库,这些库可以展示Python的另一面,也恰恰证明了Python社区的繁荣发展。

    1. Bashplotlib

    图源: Unsplash

    Bashplotlib是一个Python库,使得能够在命令行stdout环境中绘制数据。老实说,第一次看到这个库的时候,笔者很疑惑,我们为什么可能会需要这样的库?

    很快笔者就意识到,当没有任何可用的GUI时,它可能会很有用。这个情况可不太常见,它引起了笔者的好奇心。我这是一个非常有趣的Python库。

    使用pip就可以很容易地安装Bashplotlib:

    <span>pipinstall bashplotlib</span>

    来看一些例子。在下面的代码中,导入了numpy来生成一些随机数组,当然还有bashplotlib。

    importnumpy as np from bashplotlib.histogram import plot_hist arr = np.random.normal(size=1000, loc=0, scale=1)

    plot_hist是bashplotlib的一个函数,用于在直方图中绘制一维数据,就像plt.hist在Matplotlib中的功能一样。然后,使用Numpy生成一个包含1,000个服从正态分布的数字组成的随机数组。在此之后,可以很容易地绘制这些数据:

    <span>plot_hist(arr, bincount=50)</span>

    输出就像这样:

    你也可以从文本文件中用散点图来绘制数据。

    2.  PrettyTable

    Bashplotlib在命令行环境中绘制数据,而PrettyTable以一种好看的格式绘制输出结果表。

    同样的,使用pip可以很容易地安装这个库:

    <span>pipinstall prettytable</span>

    首先,导入这个库:

    <span>from prettytable import PrettyTable</span>

    然后,使用PrettyTable创建表格对象:

    <span>table =PrettyTable()</span>

    一旦创建表格对象,就可以开始添加域和数据列了:

    table.field_names= [ Name ,  Age ,  City ] table.add_row(["Alice", 20, "Adelaide"]) table.add_row(["Bob", 20, "Brisbane"]) table.add_row(["Chris", 20, "Cairns"]) table.add_row(["David", 20, "Sydney"]) table.add_row(["Ella", 20, "Melbourne"])

    只需打印就可显示表格:

    <span>print(table)</span>

    PrettyTable还支持改进表格样式,几乎包括可以想到的任何方面。例如,我们可以右对齐表格中的文字:

    <span>table.align= r </span>

    <span>print(table)</span>

    按列对表格排序:

    <span>table.sortby= &quot;City&quot;</span>

    <span>print(table)</span>

    甚至可以得到表格的HTML字符串

    3. Colorama

    想为命令行应用程序添加一些颜色吗?Colorama可以很容易地输出你喜欢的颜色。

    图源:unsplash  

    再一次使用pip安装Colorama:

    <span>pipinstall colorama</span>

    Colorama支持在“前景”(文本颜色)、“背景”(背景颜色)和“风格”(额外的风格的颜色)中支持渲染输出颜色。可以导入:

    <span>fromcolorama import Fore, Back, Style</span>

    首先使用黄色显示一些警告:

    然后尝试使用红色背景显示一些错误:

    <span>print(Back.RED+ Fore.WHITE + &quot;This is an error!&quot;)</span>

    红色太艳了。使用“dim”风格。

    <span>print(Back.RESET+ Style.DIM + &quot;Another error!&quot;)</span>

    此处设置“RESET”改变背景颜色为默认。

    “DIM”样式使字体不可见。若想把所有东西都恢复正常时,只需将“Style”设置为“RESET_ALL”:

    <span>print(Style.RESET_ALL)</span>

    4. FuzzyWuzzy

    很多时候,你可能想为程序实现一个“模糊”搜索功能,FuzzyWuzzy提供了一个开箱即用的轻量级解决方案。

    和再去一样,使用pip安装:

    <span>pip installfuzzywuzzy</span>

    导入库:

    <span>fromfuzzywuzzy import fuzz</span>

    做个简单的测试:

    <span>fuzz.ratio(&quot;Let’sdo a simple test&quot;, &quot;Let us do a simple test&quot;)</span>

    如结果所示,“93”表示这两个字符串有93%的相似性,这相当高了。

    当有一个字符串列表,想要搜索所有的字符串,FuzzyWuzzy将帮助提取最相关的字符串及其相似性。

    <span>fromfuzzywuzzy import processchoices = [&quot;Data Visualisation&quot;, &quot;DataVisualization&quot;, &quot;Customised Behaviours&quot;, &quot;CustomizedBehaviors&quot;]process.extract(&quot;data visulisation&quot;, choices,limit=2)</span>

    <span>process.extract(&quot;custom behaviour&quot;, choices, limit=2)</span>

    在上面的示例中,参数limit告诉FuzzyWuzzy提取“前n个”结果。否则将获得具有所有这些原始字符串及其相似性分数的元组列表。

    5. TQDM

    图源:unsplash  

    你通常会使用Python来开发命令行工具吗?如果是的话一定要试试这个库。当CLI工具处理一些耗时的事情时,它将通过显示一个进度条来指示完成了多少工作,帮助你了解情况。

    老办法,使用pip安装:

    <span>pipinstall tqdm</span>

    当for循环使用range函数时,只是把它替换为tqdm中的trange即可。

    <span>fromtqdm import trangefor i in trange(100):</span>

    <span> sleep(0.01)</span>

    一般来说,对列表做循环。使用tqdm也很容易。

    fromtqdm import tqdm for e in tqdm([1,2,3,4,5,6,7,8,9]):    sleep(0.5)  # Suppose we are doing something with theelements

    tqdm不仅适用于命令行环境,还适用于iPython / Jupyter Notebook。

    图源: https://github.com/tqdm/tqdm

    在看到Bashplotlib库之前,必须说笔者从来没有在命令行环境中绘制数据的想法。人类发展思想和创造力的多样性从来没有停止过,这让一切事物变得有趣起来。何不去试试呢?

    好了,今天的分享就到这,如果你对Python感兴趣,欢迎加入我们【python学习交流裙】,免费领取学习资料和源码。

    相关文章

      网友评论

        本文标题:这5个有趣的Python库带你花式编码!

        本文链接:https://www.haomeiwen.com/subject/pupkqltx.html