【Python趣味干货系列】第五期:Github 4月份最热门Python项目
千锋python
编辑于 2021年04月25日 17:38
收录于文集
共34篇

【千锋教育干货暴击】

如果你想更好的学习python乃至转行,弯道超车,快人一步!本课程零基础即可加入学习,抓住大数据、机器学习、人工智能时代的红利,开启你的第一行代码吧!

    ↓    ↓    ↓

千锋Python全套视频教程(700集)​

千锋教育Python教程全套_python零基础入门到精通(学完可达到Python工程师水平)​

cut-off

大家好!我是宋宋老师!发现了好的东西当然不能吝啬,要给大家分享出来。

其实最近一直在想,我们的【趣味干货】专栏应该给大家准备什么样子的文章,大家才对大家有帮助、感兴趣。

当然如果大家有什么喜欢的内容、或者想了解的内容,非常希望大家能在评论区告诉我。

今天给大家分享几个Github上标星🌟的项目吧!

1、炫酷的进度条

最近在写爬虫程序的时候,需要下载多张图片并进行处理,有时每张图片处理时间还较长的场景。这个等待过程如果不加一个进度条感觉怪怪的。所以去Github上找了一圈,发现alive-progress使用起来很香分享给大家。

项目地址:https://github.com/rsalmei/alive-progress,但是里面的说明文档全是英文呢!鼓励大家读文档,但是实在英文不好的朋友就看下面的介绍吧

看到这么多可选择的进度条,是不是瞬间神清气爽,哈哈哈 😂,下面介绍一下使用:

安装:

代码块
JavaScript
自动换行
复制代码
pip/pip3 install alive-progress
复制成功

使用:假设我们要处理图片,我们使用time.sleep来模拟延时的操作

代码块
JavaScript
自动换行
复制代码
# 1. 导入
import time
from alive_progress import alive_bar

# 使用alive_bar创建对象
with alive_bar(100,bar='bubbles') as bar:
  for i in range(100):
    time.sleep(0.05)
    bar()
复制成功

结果:

其中alive_bar后面的第一个参数就是指进度条的总长,而with里面的for循环,是表示每循环一次增加一个百分比,即上图中97位置的数字。

alive_bar里面的参数还有关键字bar='bubbles&#​39;,那后面的只有bubbles吗?不是!可以使用show_bars()函数查看

还可以指定length参数在后面,用于设定进度条的长度,比如:alive_bar(100,bar='bubbles&#​39;,length=20)长度就会变短了。

2、每30秒学会一个Python小技巧

一个将碎片化时间利用到极致的github项目《30-seconds-of-python》。

项目地址:https://github.com/30-seconds/30-seconds-of-python

比如找出两个列表的不同

代码块
JavaScript
自动换行
复制代码
def difference(a, b):
  _b = set(b)
  return [item for item in a if item not in _b]
  
difference([1, 2, 3], [1, 2, 4])  # 【3】
复制成功

再比如将数据分组:

代码块
JavaScript
自动换行
复制代码
from collections import defaultdict

def group_by(lst, fn):
  d = defaultdict(list)
  for el in lst:
    d[fn(el)].append(el)
  return dict(d)

from math import floor

group_by([6.1, 4.2, 6.3], floor) # 结果: {4: [4.2], 6: [6.1, 6.3]}
group_by(['one', 'two', 'three'], len) # 结果: {3: ['one', 'two'], 5: ['three']}
复制成功

里面全部是小技巧,有近百个小的代码,适用日常的一些小的开发需求。

3、盲水印添加

盲水印不仅仅用于图片,也可应用于像音频这种数据流。盲水印隐蔽性强,给水印数据进行编码过后不易被破解出来。这是它最大的优势。

有一篇文章就是:阿里根据截图查到泄露者,用的什么黑科技?(数字盲水印) 

项目地址:https://github.com/guofei9987/blind_watermark

下面看一下如何对图片添加盲水印。原图:

水印图:

通过代码实现盲水印:

安装:

代码块
JavaScript
自动换行
复制代码
pip install blind-watermark
复制成功

使用:

代码块
JavaScript
自动换行
复制代码
from blind_watermark import WaterMark

bwm1 = WaterMark(password_wm=1, password_img=1)
# 读取原图
bwm1.read_img('pic/dog.jpg')
# 读取水印
bwm1.read_wm('pic/watermark.png')
# 打上盲水印
bwm1.embed('output/dog1.png')
复制成功

得到的是:

但是各位看出来加水印了嘛?如果你盗用图片小心侵权哦!其实这个对淘宝的商家模特图片更有价值,防止盗图。

4、分享两款游戏

Python 语言编写的植物大战僵尸,学习如何使用 Python 编写小游戏的极佳例子,下载地址:https://github.com/marblexu/PythonPlantsVsZombies

运行步骤:

代码块
JavaScript
自动换行
复制代码
需要 Python 3
安装依赖库:pip install pygame
python main.py
复制成功

另一个是基于 PyQt 框架写的小型桌面应用程序的集合。想用 Python 写桌面应用的小伙伴,这个项目应该可以帮到你。

项目地址:https://github.com/learnpyqt/15-minute-apps

比如写个扫雷游戏:

还有纸牌游戏等,想研究桌面程序的可以收藏哦!

如果需要源代码可以评论区留言哦。

最后福利大赠送:太太太喜欢这个网站啦!专注分享Github上有趣、入门级的项目。

cut-off

需要资料也可以关注微信公众号:Python专栏,事不宜迟,一起进步吧!