DevWeekly/docs/2-pyhubweekly.md

8.8 KiB
Raw Permalink Blame History

前言

上一周我写了一篇总结GitHub上优质Python项目的文章文章发出之后在公众号和知乎受到很多同学的喜爱和认可这有一些出乎我的意料。

思索一下这的确是一件很值得去做的事情。这一年来我养成了一个每天逛一逛GitHub的习惯因为我个人对新鲜事物充满着好奇心或者是有趣的项目、或者是实用的小工具我期望能够在GitHub上能够遇到我想要的东西。

GitHub是一个鱼龙混杂的地方上面的确有很多不错的开源项目但是更多的是一些灌水的项目例如某些教育机构的大作业例如那些每天刷榜的中文无聊的项目。因此虽然我每天都会花费一部分时间去浏览GitHub但是真正让我内心觉得这个项目“不错”的却少之又少。我想也许这就是为什么我上一篇文章受到认可的原因吧。

既然这样我想倒不如花费一部分精力去开辟一些专门介绍GitHub上优质Python项目的版块名称就叫PyHubWeekly主要宗旨有两点

  • 每周更新一次
  • 精选GitHub上优质Python项目

对于这个模块我的想法是不追求数量而追求质量换句话说也许有的时候能介绍10个项目有的时候只介绍1个项目不会为了拼凑数量而一味的去美化一个项目把它描绘的天花乱坠。也许有一天Python被淘汰了而且优质的项目有穷有尽再或者各位关注者对于这类文章失去了兴趣那样的话PyHubWeekly这个版块也就走到了尽头。

另外针对PyHubWeekly我的定位是通过每篇文章去介绍一些有趣值得去了解的GitHub项目因此对于每个项目不会去深入介绍会简单的介绍一些它的功能以及它的特点。如果其中我个人认为哪个项目非常不错或者各位同学对于哪个项目特别感兴趣我会单独再写一篇详细介绍这个项目的文章。

当然,无论写哪方面的文章,出发点都会坚持自己的初心,坚持原创、坚持与众不同,希望自己分享能够切实的帮助到需要的同学。

如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~

下面就开始介绍本期的5个项目。

1. Gooey

Star8.5k

这是一个将Python 2或3控制台程序转换为GUI应用程序工具

img

Gooey通过简单的在argarse上调用装饰器的方式就可以实现程序的界面化如果需要进行更精细的调整则可以使用嵌入式替换GooeyParser代替ArgumentParser

img

2. memory_profiler

Star2k

Python是一门相对简单的编程语言这里所说的简单是指入门简单。因此很多人忽略了程序底层的内容例如空间复杂度、时间复杂度等。对于很多人来说写完程序能够跑通即可但是一个好的程序要兼备考虑程序的复杂度、内存占用等。

这是一个依赖于psutil的python模块用于监视进程的内存消耗以及对python程序的内存消耗进行逐行分析。

@profile
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a

if __name__ == '__main__':
    my_func()

执行程序,

$ python -m memory_profiler example.py
Line #    Mem usage  Increment   Line Contents
==============================================
     3                           @profile
     4      5.97 MB    0.00 MB   def my_func():
     5     13.61 MB    7.64 MB       a = [1] * (10 ** 6)
     6    166.20 MB  152.59 MB       b = [2] * (2 * 10 ** 7)
     7     13.61 MB -152.59 MB       del b
     8     13.61 MB    0.00 MB       return a

3. pyecharts

Star7.8k

在Python开发中提到画图应该十有八九会想到matplotlib它是一个老牌且强大的绘图库但是在使用过程中有一些弊端例如不适合离线查看、支持的绘图接口较为单一。

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言很适合用于数据处理。当数据分析遇上数据可视化时pyecharts 诞生了。它能够把绘图结果保存为一个html文件能够动态展示绘图结果且随时可以打开查看。另外它支持的绘图类型非常丰富。

img

4. wtfpython

Star18.6k

wtfpython这个Python项目两年前就有所耳闻首先说一下它的全名比较粗俗“What the f*ck Python!”就如同前面所说的那样虽然很多人认为Python非常容易但是它也有很多不为人知的特性。

有很多点按照我们的理解应该是这样的但是当运行之后却发现和我期望的结果有很大出入具体问题出现在哪了却很难找出来。wtfpython这个项目就总结了这些不为人知的特性能够让你发现更多Python令人惊奇的地方。

例如,下面这个例子,

some_dict = {}
some_dict[5.5] = "Ruby"
some_dict[5.0] = "JavaScript"
some_dict[5] = "Python"

输出,

>>> some_dict[5.5]
"Ruby"
>>> some_dict[5.0]
"Python"
>>> some_dict[5]
"Python"

按照正常的结果some_dict[5.0]不是应该输出“JavaScript”吗为什么输出了“Python”?下面就是解释,

img

5. tqdm

Star12.9k

tqdm是一个Python进度条工具如果刚开始学习Python时我会对它不屑一顾编程语言本身还没有学明白为什么要用这些花里胡哨的东西简直就是鸡肋

但是当开发项目久了以后才发现它有着不可替代的价值。就如同我们排号吃饭一样我们希望实时的监控着当前事件进行到什么程度了Python开发也是这样我们不能一直把它挂在那里留给我们一个空白的shell具体是进程死掉了还是读数据库时出现了问题都不清楚有着这个进度条能够对我们的运行过程一目了然。

img


我建了一个QQ学习交流群旨在“分享、讨论、学习、资源分享、就业机会、互联网内推、共同进步感兴趣的可以加一下也可以添加我的QQ~ QQ群1002821945QQ号498073774公众号【平凡而诗意】~

更多精彩内容

实用工具 | 2款播放器让你免费听遍全网无损音乐

大数据 | Spark机器学习工作流开发指南

实用工具 | 你距离PS大神只差这6款免费在线工具

简易教程 | 分布式消息发布订阅系统Kafka从搭建到使用

教程 | 一文搭建你的第一个免费专属博客

办公效率 | 让你突飞猛进的10个Word技能

学习工具 | 推荐10款提升自己的优质APP

Google | Python编程规范指南