python比较炫酷的代码,python特效动画

最近学习Python,网上学习资料挺多的,这篇写的不错,关于python比较炫酷的代码和python特效动画,大家有需要也可以看看。

作为最流行的 CI/CD 工具,Jenkins 的优势之一是其生态强大,而这与其插件体系分不开的。

目前 Jenkins 插件 1500+ (截止20200617,插件数量为1749)。

近日发现词云比较好玩,它通过形成“关键词云层”或“关键词渲染”,可以将网络文本中出现频率较高的“关键词”在视觉上突出。

想着以 Jenkins 插件名称为数据源,形成的词云会是什么样的呢,什么关键字会比较突出呢?

带着问题,带着好奇心,开始了实践之旅~

1、插件基本字段说明

以 Jenkins Maven SNAPSHOT Check Plugin为例,

其 ID 为 maven-snapshot-check,Name 为 Maven SNAPSHOT Check。

python比较炫酷的代码,python特效动画

2、获取所有 Jenkins 插件的名称

如何获取所有 Jenkins 插件的名称呢?我这里想到三种方式,或许还有更多方式:

对比上面的三种方式,插件权限文件中并没有 Name 字段,插件更新中心配置文件相对从插件官网抓取比较简单。

所以计划从 update-center.json 进行解析,其中插件名称在 json 中对应字段为 title。

python比较炫酷的代码,python特效动画

3、生成 Jenkins 插件名称文件

读取 update-center.json 中 plugin 的 title 字段,按行写入到 jenkins-plugins.txt 文件,python 代码如下:

# -*- coding: UTF-8 -*-

import json

if __name__ == "__main__":

json_obj = json.load(open("update-center.json", "r"))

plugins_obj = json_obj["plugins"]

with open("jenkins-plugins.txt", "w") as fw:

for plugin_name in plugins_obj:

plugin_obj = plugins_obj[plugin_name]

print plugin_obj["title"]

fw.write(plugin_obj["title"].encode("utf-8") + "

")

生成的 jenkins-plugins.txt 文件共有 1749 行(与 Jenkins 1749个插件对应),其内容截图如下:

python比较炫酷的代码,python特效动画

4、生成词云图

这里使用 Python 代码生成词云图,词的来源为 jenkins-plugins.txt,代码如下:

# -*- coding: UTF-8 -*-

from wordcloud import WordCloud

import matplotlib.pyplot as plt

import numpy as np

from PIL import Image

if __name__ == "__main__":

with open("jenkins-plugins.txt") as f:

text = f.read()

# mask

mask = np.array(Image.open("jenkins-horizontal-color.png"))

# generate word cloud

wc = WordCloud(mask=mask, scale=1.5, mode="RGBA", background_color="white", max_words=2000).generate(text=text)

# show word cloud

plt.imshow(wc, interpolation="bilinear")

plt.axis("off")

plt.show()

# save to file

wc.to_file("word-cloud.png")

这里的关键字都是英文,如果是中文的话,还会涉及到中文分词,python 也有相应的处理模块(如:jieba)。

生成的词云图以 Jenkins logo 为背景图片,各个关键字以不同大小和比例,绘制出一幅多彩的画卷,感觉很美观、很酷炫:

python比较炫酷的代码,python特效动画

从词云图中可以看出,Pipeline 词频最高,Build、API、Job 次之,紧接着还有 Publisher、Notifier、Trigger、Step、GitHub 等等。

其中 Pipeline 是 Jenkins 2.0 的核心功能,使曾经无比辉煌的 Jenkins 再次走向了下一个辉煌~~

5、资源说明

所有代码可以在 GitHub/Gitee 仓库找到,有空的话顺便点个 star,万分感谢~

吸猫:奇葩调皮 大家喜欢可以收藏我的博客:OpenEIM

上一篇:tinymce编辑支持word内容和截图的复制黏贴


下一篇:项目中的富文本编辑器该如何选择?