这里是数十个你感兴趣的Python项目专区-Python主题月开源项目大赏,内含游戏、学习教程、工作效率提升项目集合

2,012 阅读9分钟

Python 有趣开源项目汇总

游戏类Python 开源项目

首先让我们一睹为快:掘友通过Python 完成了哪些小游戏 ?

Python:游戏:五子棋之人机对战

作者通过对比五子棋与之前写的几款游戏来说,详细的为大家介绍了如何使用Python 画棋盘、棋子、落子等详细过程。五子棋人机对战相较于普通的对战难度提高了不少。如果是人与人对战,那么,电脑只需要判断是否赢了就可以。如果是人机对战,那你还得让电脑知道怎么下。想要了解五子棋人机对战,详情查看:五子棋人机对战

Python Tkinter教程系列:剪刀石头布游戏

如何使用Python 3和Tkinter开发相同的游戏。实现剪刀石头布的游戏玩法呢?作者通过10个步骤详细介绍如何完全实现石头剪刀布小游戏的完成,让我们一睹为快Python Tkinter教程系列:剪刀石头布游戏

童年的记忆——如何用python写一个俄罗斯方块小游戏!

谈到记忆里的小游戏,俄罗斯方块是大家一定会想到的一款游戏,自己写出来的应该玩起来更有感觉,然后就写了一个俄罗斯方块的游戏,作者在文中详细展示了源码,以及详细操作流程,详情查看:[童年的记忆——如何用python写一个俄罗斯方块小游戏!]

1、15-minute-apps

基于 PyQt 框架写的小型桌面应用程序的集合。想用 Python 写桌面应用的小伙伴,这个项目应该可以帮到你。比如写个扫雷游戏:

img

2、running_page

一个展示个人跑步主页的 Python 项目。特性:

  • GitHub Actions 管理自动同步跑步进程及自动生成新的页面
  • Gatsby 生成的静态网页,速度快
  • Mapbox 进行地图展示
  • 支持 Nike、Runtastic、佳明、Keep 的数据
  • 自动备份 gpx 数据,方便备份及上传到其它软件

img

3、free-python-games

真入门级的 Python 游戏集合库。都是简单的小游戏:贪吃蛇、迷宫、Pong、猜字等,运行方便、代码简单易懂。用游戏开启的你 Python 学习之旅,玩完再学源码,其乐无穷啊。安装运行:

pip install freegames
python -m freegames.snake # freegames.游戏名

img

4、PyBoy

Python 写的 GameBoy 模拟器。不仅可以用来怀念童年,还能用这个库写“外挂”,之前虐你千百遍的游戏。现在用 Python 找回场子,放学别走,学校门口见!示例代码:

from pyboy import PyBoy
pyboy = PyBoy('ROMs/gamerom.gb')
while not pyboy.tick():
    pass

img

5、rssant

免费开源的 RSS 订阅项目,服务端是 Django 写的。你可以自己部署也可以直接使用在线版,远离嘈杂的推荐、广告,专注你订阅的内容

img

🔙

6、wttr.in

一个 Python 实现的命令行查看天气工具

img

7、akshare

一款基于 Python 的开源金融数据接口库。提供了股票、期货、期权、基金、数字货币等金融产品的基本数据、实时和历史行情数据、衍生数据,包含数据采集、数据清洗、到数据落地的一套开源工具。满足了金融数据科学家、数据科学爱好者在金融数据获取方面的需求。示例代码:

import akshare as ak
bond_df = ak.bond_spot_deal()
print(bond_df)

   债券简称 成交净价(元) 最新收益率(%)  涨跌(BP) 加权收益率(%) 交易量(亿)
0          19国开15   98.97   3.5750    1.00   3.5826   None
1        19附息国债03   99.82   2.7714    0.14   2.7772   None
2        19附息国债11   99.87   2.8000    0.25   2.7963   None
3        19附息国债04  100.82   2.9832   -1.54   2.9747   None
4        15附息国债05  102.95   3.0359   -1.41   3.0359   None

8、activitywatch

一个记录你的时间都花在那的 Python 项目。支持 Web 可视化,效果如下

img

9、PythonPlantsVsZombies

Python 语言编写的植物大战僵尸。学习如何使用 Python 编写小游戏的极佳例子,运行步骤:

1. 需要 Python 3
2. 安装依赖库:pip install pygame
3. python main.py

img

教程类Python 开源项目

1、learn-python

一份以代码和注释方式讲解 Python 的免费教程。每个 Python 基础语法和知识点都采用可以运行的代码为例讲解,再配上适当的注释和参考资料,让你快速上手 Python。此项目不仅可以当做学习 Python 的资料,还可以留着做为速查表

"""WHILE statement
@see: https://docs.python.org/3/tutorial/controlflow.html
@see: https://docs.python.org/3/reference/compound_stmts.html#the-while-statement
The while loop executes as long as the condition remains true. In Python, like in C, any
non-zero integer value is true; zero is false. The condition may also be a string or list
value, in fact any sequence; anything with a non-zero length is true, empty sequences are
false.
The test used in the example is a simple comparison. The standard comparison operators are
written the same as in C: < (less than), > (greater than), == (equal to), <= (less than or
equal to), >= (greater than or equal to) and != (not equal to).
"""

def test_while_statement():
    """WHILE statement"""

    # Let's raise the number to certain power using while loop.
    number = 2
    power = 5

    result = 1

    while power > 0:
        result *= number
        power -= 1

    # 2^5 = 32
    assert result == 32

2、python-patterns

Python 设计模式和使用场景的集合

img

3、practical-python

大佬 David Beazley 开源的 Python 免费入门级教程。他是《Python Cookbook 第三版》、《Python 参考手册》的作者,教程经过实际的教学实践、包含课后练习题。在线学习,教程目录如下:

img

4、readthedocs.org

知名文档社区网站(readthedocs.org)的开源源码。该网站上托管了:Scrapy、requests、bootstrap-datepicker 等知名库的文档,我看了下项目是基于 Django 开发的,文件有些多看起来需要点耐心

5、learn-python3

一份 Python3 的教程,请查收。该教程采用 Jupyter notebooks 形式,便于运行和阅读。并且还包含了练习题,对新手友好。缺点的话就是英文的教程,但是我都能看懂你肯定也可以

6、Computer-Networking-A-Top-Down-Approach-NOTES

《计算机网络-自顶向下方法》编程作业。包含问题和 Python 代码解答,Wireshark 实验部分为官方文档的翻译

7、geek_crawler

极客时间课程(目前仅支持图文、音频)下载到本地的 Python 脚本。需输入账号密码后,才能将指定极客时间专栏课程保存到本地,方便随时随地学习

img

8、python-small-examples

Python 有趣、实用的代码示例集合。包含:Python 基础、小技巧、坑、文件操作、机器学习、绘图等,代码如下:

# pyecharts 绘制水球图示例
from pyecharts import options as opts
from pyecharts.charts import Liquid, Page
from pyecharts.globals import SymbolType

def liquid() -> Liquid:
    c = (
        Liquid()
        .add("lq", [0.67, 0.30, 0.15])
        .set_global_opts(title_opts=opts.TitleOpts(title="Liquid"))
    )
    return c

liquid().render('./img/liquid.html')

img

工作效率提升专区

1、BaoTa

宝塔 Linux 服务器运维管理平台。简单好用的服务器运维平台,支持一键 LNMP 安装、管理集群、网站、数据库等功能,可以有效的提高操作的规范性和安全性,降低出错概率。这个开源项目是免费版,还有付费的专业版

img

2、recommenders

通过 Jupyter Notebook 形式呈现的推荐系统最佳实践。这是微软开源的推荐系统教程,项目中还包含推荐系统常用的 Python 工具箱

img

3、magic-wormhole

一条命令就能将文件安全地传送到另外一台电脑上的工具。基于 PAKE(Password-Authenticated Key Exchange)协议实现文件在公网的加密传输,发送和接收均仅需一条命令

img

4、tomato-clock

Python 写的命令行番茄工作法定时器。代码仅有 100 多行,不依赖其它第三方库

🍅 tomato 25 minutes. Ctrl+C to exit
 🍅🍅---------------------------------------------- [8%] 23:4

5、vardbg

一款能够把 Python 程序执行过程,导出成视频或动图的代码调试工具。可用于动画学算法、制作代码讲解视频等场景

img

6、apkleaks

扫描 APK 文件是否包含敏感信息的命令行工具

// custom-rules.json
{
  "Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
  ...
}
$ apkleaks -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt

img

7、ArchiveBox

基于 Python 实现的网站归档平台。就是可以自动把网页(HTML、PDF、图片等)变成静态页面,下载到本地存储和管理的工具。可以用来做镜像站、档案馆、离线阅读等·

img

8、Airtest

适用于移动端应用的跨平台 UI 自动化框架。基于图像识别定位元素,可能都不需要一行代码就可以很方便地用它来测试 APP 或刷游

img

9、lux

一个用于数据科学方面的 Python 开源库。这个库适用于实验室分析数据的场景,基于 Jupyter 的数据可视化和操作界面,再加上 pandas 丰富的数据接入方式以及强大的数据处理能力,让数据的分析变得简单从而可以更加直观地找到数据背后藏着的“真理”

img

10、qutebrowser

基于 PyQt5 编写的 Vim 操作方式的浏览器。支持 Linux,Windows 和 macOS 操作系统,可以先安装体验下。然后再看看源码学习如何用 Python 写浏览器

img

11、requests-html

好用的 Python 解析 HTML 库。写爬虫的小伙伴都感受过解析 HTML 的痛苦,常用工具 BeautifulSoup、lxml、Scrapy 的 selector 等。今天你有了新的选择 requests-html,支持 XPath、CSS 选择器、动态页面、过滤指定内容等。上手特别简单和迅速,我的爬虫项目 Hydra 中就用了它,解析 HTML 变得轻松了许多。下面是我觉得好用的函数示例:

# 找出元素下的所有链接
about.absolute_links
{'http://brochure.getpython.info/', 'https://www.python.org/about/quotes/', 'https://www.python.org/about/help/'}
# 匹配内容
>>> r.html.search('Python is a {} language')[0]
programming
# 直接提取属性的值
>>> about.attrs
{'id': 'about', 'class': ('tier-1', 'element-1'), 'aria-haspopup': 'true'}
# 呈现加载 JS 后的动态内容
r.html.render()

12、alive-progress

新!Python 炫酷进度条项目。支持 Python2.7-3.8 示例代码:

# 安装:pip install alive-progress
from alive_progress import alive_bar

with alive_bar(total) as bar:  # declare your expected total
    for item in items:         # iterate as usual over your items
        ...                    # process each item
        bar()                  # call after consuming one item

img

13、PyG2Plot

基于 G2Plot 封装的 Python3 可视化库。G2Plot 是蚂蚁集团开源的一个基于图表分类学的可视分析图表库,内置 25+ 常见图表类型。该库是 Python 对 G2Plot 的封装,体验良好,开箱即用

from pyg2plot import Plot

line = Plot("Line")

line.set_options({
  "height": 400, # set a default height in jupyter preview
  "data": [
    { "year": "1991", "value": 3 },
    { "year": "1992", "value": 4 },
    { "year": "1993", "value": 3.5 },
    { "year": "1994", "value": 5 },
    { "year": "1995", "value": 4.9 },
    { "year": "1996", "value": 6 },
    { "year": "1997", "value": 7 },
    { "year": "1998", "value": 9 },
    { "year": "1999", "value": 13 },
  ],
  "xField": "year",
  "yField": "value",
})

line.render_notebook()

img

14、Zappa

Python 无服务框架,功能即服务(serverless)。你知道 serverless 是什么吗?不懂的老铁扣 1 🤝 我摊牌了我不懂这个玩意儿。直到我看到了 Zappa 这个项目,然后我的脑海里就几个字:甩手掌柜。用它开发完功能,几个命令打包上传到云服务平台,然后就不用管啦!不仅程序员喜欢它,老板也喜欢因为能够降低服务器成本(省钱)。来感受下“知识”的力量吧

img

15、xonsh

支持 Python 赋能的 shell。如果你不会编写 shell 脚本,但是会 Python。那通过这个项目可以让你混用 shell 命令和 Python 语法,高效快速地完成你想要的功能

img

16、python-cheatsheet

全面且实用的 Python 备忘录。这个东西特别适合我这个上了年纪的人,比如:忘记怎么用 Python 写正则、要搞个进度条忘记库的名字和基本用法、用 pandas 处理数据忘记方法需要的参数等等。正当我觉得自己需要“回炉重学”的时候发现了这个项目,有了它上面的问题都可以找到拿来即用的代码片段。我又是那个快乐的 Pythoneer 了,示例代码:

# $ pip3 install tqdm
>>> from tqdm import tqdm
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc='Processing'):
...     sleep(1)
Processing: 100%|████████████████████| 3/3 [00:03<00:00,  1.00s/it]

17、flask-state

一款轻便的机器状态监控 Flask 插件。示例代码:

flask_state.init_app(app)
// npm
import 'echarts';
import 'flask-state/flask-state.min.css';
import {init} from 'flask-state';
// Create a DOM node with ID 'test'. After init() binds the node, click to open the listening window
init({dom:document.getElementById('test')});

img

18、playwright-python

微软开源的浏览器自动化工具,可以用 Python 语言操作浏览器啦。支持 Linux、macOS、Windows 系统下的 Chromium、Firefox 和 WebKit 浏览器

img

19、wagtail

目前最强大的开源 Django CMS(内容管理系统)之一。我很少用“最”这个字眼,节省时间就聊聊它惊艳到我的点吧。首先该项目更新、迭代活跃,其次项目首页提到的功能都是免费的,没有付费解锁的骚操作。wagtail 专注于内容管理,不束缚前端实现。有趣的 StreamField 技术让你的内容变得灵活且不失结构,竟然还支持 A/B 测试,最后 Google、NASA 他们都在用这个项目

img

20、altair

强大的数据可视化 Python 库。支持多种数据展示方式、接口简单、效果炫酷,示例代码和效果如下:

import altair as alt
from vega_datasets import data

source = data.cars()
brush = alt.selection(type='interval')
points = alt.Chart(source).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color=alt.condition(brush, 'Origin', alt.value('lightgray'))
).add_selection(
    brush
)

bars = alt.Chart(source).mark_bar().encode(
    y='Origin',
    color='Origin',
    x='count(Origin)'
).transform_filter(
    brush
)

points & bars

img

21、butterfly

又一个轻量级的 Python Web 框架。Web 框架太多了,该项目主旨是通过开发一个轻量级、可靠可用的 Web 框架,来更加深入理解 Web 开发过程中经常忽略(框架做的)但又十分重要的知识点。那句话咋说来的:我不做一遍,我就不算懂!架构图如下:

img

22、ar-cutpaste

AR 拷贝实物照片到 PS 软件的工具。它可以通过 iPhone 或者 Android 手机将真实物品从周围环境中抠出来,并粘贴到 Photoshop 中,未来还会支持其它软件

img

23、scalene

一个 Python 的高性能 CPU 和内存分析器。Scalene 很快、占用资源少、展示信息全面,可用来排查、优化 Python 程序占用资源过多等问题

img

24、KubeOperator

用 Python 语言开发的开源容器集群管理平台。在离线网络环境下通过可视化 Web UI 在 VMware、Openstack 或者物理机上规划、部署和管理生产级别的 Kubernetes 集群。开启你的 Kubernetes 之旅

img