编程语言

Python

共 511 个项目
← 项目库
abogen
Python第 124 期

abogen

带同步字幕的有声书生成器。这是一款基于 Kokoro-82M 的文本转语音有声书生成工具,可将 EPUB、PDF、TXT、Markdown 和字幕文件转成 MP3、M4B、FLAC 等格式的音频。它提供批量处理、章节拆分、语速调节等功能,支持包括中文在内的 9 种语言。

暂无截图
Python第 124 期

git-filter-repo

Git 历史重写工具。这是一款用于重写 Git 仓库历史的命令行工具,可作为 git filter-branch 的替代品。它仅需 Python 和 Git 即可运行,支持批量改写提交信息、标签重命名、仓库拆分和自动清理等功能。

HypoMux
Python第 124 期

HypoMux

把多张网卡的带宽叠加起来。这是一款专为 Windows 平台打造的多网卡带宽聚合下载加速工具。当电脑同时接入网线、Wi-Fi 或手机热点时,它可将下载任务分配到不同网卡上,实现远超单网卡的下载速度,并支持虚拟网卡、进程分流和实时流量监控等功能。

msgspec
Python第 124 期

msgspec

更快的 Python 序列化库。这是一个高性能 Python 序列化与数据校验库,支持 JSON、MessagePack、YAML 和 TOML 格式,常见操作比同类库快 10-80 倍。

wenyi
Python第 124 期

wenyi

整本翻译外文小说的工具。这是一个用于翻译长篇小说的命令行工具,支持 EPUB、FB2、TXT、Markdown、HTML 和 PDF 文件格式。它通过全书分析、滚动上下文、动态术语表、润色和校对,提升长篇小说翻译的一致性和可读性。

来自 @DawnGhost 的分享
ASCILINE
Python第 123 期

ASCILINE

把视频变成字符流的引擎。这是一款跨平台的实时 ASCII 视频渲染引擎,可实现 30 FPS 的流畅播放效果,支持 URL 直接播放、音视频同步、自适应帧编解码等功能,ASCII 模式下无需 GPU 即可流畅运行。

暂无截图
Python第 123 期

black

省心的 Python 代码格式化工具。该项目是由 Python 软件基金会(PSF)官方维护的代码格式化工具。配置项少、结果可重现,只需一条命令,代码就会变成统一风格,彻底消除团队的代码风格之争。

来自 @Xuefeng Xu 的分享
mpmath
Python第 123 期

mpmath

任意精度的 Python 数学计算库。该项目是可以计算到任意小数位的 Python 库,支持求根、线性代数、微积分、实数和复数运算等功能,适用于处理普通浮点数不够用的高精度数值计算场景。

来自 @Xuefeng Xu 的分享
Scrapling
Python第 123 期

Scrapling

自适应网页改版的 Python 爬虫框架。这是一款自适应的 Python 爬虫框架,解析器会学习网站结构变化,在页面改版后自动重新定位目标元素。内置开箱即用的抓取器,支持多会话并发、断点继续、域名屏蔽和 MCP 服务等功能。

来自 @Karim shoair 的分享
winpodx
Python第 123 期

winpodx

把 Windows 应用“嵌”进 Linux 桌面的工具。这是一款在 Linux 上运行 Windows 应用的开源工具,无需进入完整的 Windows 桌面。它会在后台用容器起一个 Windows 系统,并通过 FreeRDP 把每个 Windows 应用变成独立原生的 Linux 窗口,支持固定到任务栏、Alt-Tab 切换、文件关联和 USB 设备。

bleachbit
Python第 122 期

bleachbit

免费开源的磁盘清理工具。这是一款适用于 Windows 和 Linux 的开源磁盘清理工具,可用于清除临时文件、浏览器缓存、Cookies、浏览历史等,并支持安全删除、文件粉碎和批量自动清理等功能。

claude-tap
Python第 122 期

claude-tap

AI 编程助手的 API 流量分析工具。这是一款用 Python 开发的工具,可追踪 AI 编程 CLI 工具的 API 请求,帮助用户查看每次调用 LLM 服务时的提示词、对话历史、工具调用结果、流式响应和 Token 用量。同时支持对比相邻请求,定位 Prompt 或参数的变化,兼容 Claude Code、Codex CLI、Gemini CLI、Cursor CLI 等 10 款主流 AI 编程工具。

numexpr
Python第 122 期

numexpr

NumPy 数值计算的提速库。这是一个专为 NumPy 设计的快速数值表达式求值库,通过避免创建中间临时数组、利用多线程并行计算,显著提升计算速度并降低内存占用。对于大数组运算,速度通常是 NumPy 的 2-4 倍,复杂数学表达式运算最高达 15 倍,还支持 Intel MKL/VML 进一步加速数学函数计算。

whichllm
Python第 122 期

whichllm

帮你找到本地能跑的最佳大模型。该项目能够自动检测本机 GPU/CPU/RAM 配置,并从 HuggingFace 中筛选出适合当前硬件的大模型。它基于 LiveBench、Chatbot Arena ELO 等综合评分排名,而非单纯按参数量排序,支持模拟指定 GPU、查找运行目标模型所需显卡、一键启动对话和生成 Python 代码片段等功能。

artificial-life
Python第 121 期

artificial-life

300 行代码模拟数字生命演化。该项目通过 300 行 Python 代码复现了论文《Computational Life》,在网格中随机初始化大量 Brainfuck 风格的小程序。相邻程序会随机配对、拼接执行并互相改写代码,运行一段时间后,系统会自发涌现出能自我复制的程序并扩散至整个网格。

pdm
Python第 121 期

pdm

像 pnpm 一样管理 Python 依赖。该项目是遵循 PEP 517/582/621 等标准的包与依赖管理工具,拥有灵活的插件系统、自动安装 Python 版本等功能,以及类似 pnpm 的集中式依赖缓存来节省存储空间。

来自 @新v学员 的分享
starlette
Python第 121 期

starlette

FastAPI 就建在它上面的 ASGI 框架。这是一款轻量级的 Python ASGI Web 框架,支持 WebSocket、CORS、GZip、Session、流式响应和后台任务。它仅依赖 anyio、100% 类型注解,适合用来构建高性能的异步 Web 服务。

chardet
Python第 120 期

chardet

字符编码检测 Python 库。这是一款通用的字符编码检测 Python 库,能够自动识别出文本所使用的编码格式,支持 UTF-8、GB2312、ISO-8859-1 等 99 种编码和 49 种语言,可作为库或命令行工具使用。

cronboard
Python第 120 期

cronboard

Crontab 终端可视化管理工具。这是一款基于 Textual 构建的 crontab 可视化管理工具,可用于管理本地和远程服务器的定时任务,支持搜索任务、路径自动补全、表达式转为自然语言描述等功能。

Mouser
Python第 120 期

Mouser

罗技鼠标按键重映射工具。这是一款轻量级、免账号登录的罗技鼠标按键重映射工具,可根据不同应用自动切换按键配置,支持自定义鼠标灵敏度、滚动方向和手势。

visidata
Python第 120 期

visidata

终端里的交互式数据文件浏览工具。这是一款 Python 开发的多功能查看数据文件的命令行工具,能够直观且流畅地浏览百万行的数据文件,支持 csv、sqlite、json、xlsx 和 hdf5 等多种数据格式,部分格式需要额外安装相应的 Python 库。

freemocap
Python第 119 期

freemocap

免费开源的动作捕捉系统。这是一款基于 Python 开发的动作捕捉系统,无需标记点和 GPU,仅用普通摄像头即可实现全身 3D 动作数据采集,适用于动画制作、游戏开发和教育等场景。

gh-space-shooter
Python第 119 期

gh-space-shooter

基于 GitHub 贡献生成太空射击动图。该项目能够根据用户的 GitHub 贡献图生成太空射击游戏风格的动图,支持自定义动图帧率以及通过 GitHub Actions 定时生成并自动更新到个人主页。

来自 @Zane ChenPEc8I 的分享
暂无截图
Python第 119 期

great_expectations

像写单元测试一样验证数据质量。这是一个基于 Python 的数据质量验证框架,可通过简洁的代码定义验证规则,就像为数据编写单元测试,支持 pandas、Spark 和 SQLAlchemy 等多种数据接入方式。来自 [@Ashraf Haress](https://hellogithub.com/user/6erlUGDQfB4qAPo) 的分享```python import great_expectations as gx context = gx.get_context()file_path = "./data/folder_with_data/yellow_tripdata_sample_2019-01.csv"batch = context.data_sources.pandas_default.read_csv(file_path)expectation = gx.expectations.ExpectColumnMaxToBeBetween(column="passenger_count", min_value=1, max_value=6)validation_results = batch.validate(expectation)print(validation_results)```

InvenTree
Python第 119 期

InvenTree

开源的库存管理系统。这是一款基于 Python 和 Django 开发的库存管理平台,内置 Web 管理界面和 REST API 服务,支持扫码入库、零件追踪、物料清单和供应商管理等功能。

暂无截图
Python第 119 期

pycparser

纯 Python 实现的 C 语言解析器。这是一个纯 Python 实现、无第三方依赖的 C 语言解析器,可将 C 代码解析为抽象语法树,从而实现用 Python 轻松分析与操作 C 语言代码,支持完整的 C99 标准和部分 C11 特性。

dirsearch
Python第 118 期

dirsearch

命令行 Web 路径扫描工具。该项目是用 Python 开发的 Web 路径扫描工具,支持多线程和异步模式,并提供多种报告输出格式。

keep
Python第 118 期

keep

更智能的告警管理平台。这是一个智能告警管理和 AIOps 平台,运用 AI 技术实现告警关联和分析。它提供了统一的操作界面,便于集中管理各种告警和事件,支持告警去重、过滤、相关性分析和自动化处理等功能,可与多种监控工具、数据库、通信平台和事件管理工具集成。

maptoposter
Python第 118 期

maptoposter

极简的城市地图海报生成器。该项目是用 Python 开发的城市地图海报生成器,可将城市地图数据转化为美观、极简风格的艺术海报。它利用 OpenStreetMap 的数据,自动绘制指定城市的道路网络、水域和公园,提供赛博朋克、水墨风格等 17 种主题风格可供选择。

暂无截图
Python第 118 期

python-docx-template

Python 结合 Jinja2 生成 Word 文档。该项目是结合 python-docx 和 Jinja2 库的 Word 文档渲染库。它能够将 .docx 文档作为模板,在其中嵌入 Jinja2 语法标签,自动生成格式复杂的 Word 文档,支持图片、富文本、页眉页脚和表格等。```python from docxtpl import DocxTemplate doc = DocxTemplate("my_word_template.docx")context = { 'name' : "HelloGitHub" }doc.render(context)doc.save("generated_doc.docx")```

sqlit
Python第 118 期

sqlit

终端里的 SQL 数据库管理工具。这是一款用 Python 开发的终端 TUI 数据库客户端,致力于成为数据库领域的 lazygit。它开箱即用、操作简单,支持查询历史、自动补全、语法高亮和多种主流数据库,适合开发者在懒得启动 GUI 客户端时快速查询数据库。

devpush
Python第 117 期

devpush

完全免费开源的自托管 PaaS。这是一个开源、可自托管的 Web 应用部署平台,可作为 Vercel 替代方案。实现在自己的服务器上通过 git 推送,自动完成应用的构建与发布,支持 Python、Node.js、PHP 等多种编程语言。

Fast-F1
Python第 117 期

Fast-F1

F1 比赛数据分析库。该项目是用于获取和分析 F1 赛事数据的 Python 库,支持查询比赛结果、赛程、圈速、轮胎、遥测和天气等多种数据。内置 API 请求和解析结果缓存机制,结合 Pandas 和 Matplotlib,适用于 F1 数据分析、可视化和教学等场景。

gmail-cleaner
Python第 117 期

gmail-cleaner

Gmail 邮箱清理工具。这是一款开源、注重隐私的 Gmail 批量清理工具,帮助用户快速整理收件箱。它基于 FastAPI 构建,提供 Web 界面,支持批量退订、删除、归档、标签管理和邮件信息导出等功能。

PasteMD
Python第 117 期

PasteMD

一键将 AI 生成内容粘贴到 Word。这是一款基于 Python 的 Windows 托盘工具,可自动将剪贴板中的 Markdown 和网页 AI 的富文本回复,通过 Pandoc 转换为 DOCX 格式,并直接插入到 Word/WPS 光标所在位置。

rendercv
Python第 117 期

rendercv

像写代码一样制作你的简历。这是一款基于 Typst 的简历生成器,专为程序员、学生和学术研究人员设计。只需要编写纯文本 YAML 文件,即可一键生成排版精美、专业的 PDF 简历。

暂无截图
Python第 116 期

fastapi-best-practices

FastAPI 最佳实践指南。这是一份作者在初创公司多年使用 FastAPI 开发应用的实战经验总结,内容涵盖项目结构、异步、Pydantic、Depends、数据迁移等方面。

暂无截图
Python第 116 期

FindMy.py

玩转 Find My 网络的 Python 库。这是一个用于查询 Apple Find My 网络的 Python 库,让开发者使用 Python 代码获取 AirTag、iPhone、iPad 等官方设备以及自制 AirTag 的实时位置信息。

localstack
Python第 116 期

localstack

本地模拟 AWS 云服务。这是一个功能齐全的本地 AWS 云服务模拟框架,支持 Lambda、S3、DynamoDB、Kinesis、SQS、SNS、API Gateway 等服务。只需一条命令,即可在本地启动完整的 AWS 服务环境,解决了开发和调试过程中依赖 AWS 账户和服务的痛点。

PythonRobotics
Python第 116 期

PythonRobotics

机器人算法 Python 实现集合。该项目汇集了机器人领域算法的 Python 实现,涵盖定位、SLAM、路径规划、空中导航、机械臂、双足机器人等技术,并提供示例代码和可视化演示。

tiny8
Python第 116 期

tiny8

纯 Python 实现的 CPU 模拟器。该项目是 Python 写的轻量级 8 位 CPU 模拟器,能够将抽象的汇编语言执行过程转化为可视化、可交互的学习体验,并支持将代码执行过程导出为 GIF 或 MP4,适用于《计算机组成原理》或《汇编语言》课程的教学与学习。```python from tiny8 import CPU, assemble_file asm = assemble_file("fibonacci.asm")cpu = CPU()cpu.load_program(asm)cpu.run(max_steps=1000)print(f"Result: R17 = {cpu.read_reg(17)}") # Final Fibonacci number```

checkov
Python第 115 期

checkov

开源的 IaC 静态代码分析工具。这是一款基础设施即代码(IaC)的静态代码分析工具,旨在帮助开发者在构建阶段及时发现和防止云基础设施配置错误及安全漏洞。支持对 AWS、Azure、GCP、Kubernetes 等多种云平台的 IaC 文件(如 Terraform、CloudFormation、Kubernetes YAML 等)进行静态检测,同时可分析容器镜像和开源依赖包中的安全风险。

来自 @刘睿华 的分享
docling
Python第 115 期

docling

多格式文档解析和导出工具。这是一个由 IBM 开源的 Python 工具,专门用于将各类文档转化为适合生成式 AI 使用的格式。它能够将 PDF、DOCX、PPTX、图片、HTML、Markdown 等多种流行文档格式,导出为 Markdown 和 JSON 格式,支持多种 OCR 引擎(PDF)、统一的文档对象(DoclingDocument),轻松集成检索增强生成(RAG)和问答应用,适用于需要将文档作为生成式 AI 模型输入的场景。```python from docling.document_converter import DocumentConverter source = "https://arxiv.org/pdf/2408.09869" # PDF path or URL converter = DocumentConverter()result = converter.convert(source)print(result.document.export_to_markdown()) # output: "### Docling Technical Report[...]"```

gpu-hot
Python第 115 期

gpu-hot

实时的 NVIDIA GPU 网页监控面板。这是一个基于 FastAPI 开发的实时 NVIDIA GPU 监控仪表盘,支持利用率、内存、温度、功耗、风扇转速等多项 GPU 指标。它通过 WebSocket 实时推送数据,支持多 GPU、单机和 GPU 集群环境,并可通过 Docker 一键部署。

来自 @wanzij 的分享
PyQt-Frameless-Window
Python第 115 期

PyQt-Frameless-Window

基于 PyQt5 的跨平台无边框窗口。该项目是基于 PyQt/PySide 的跨平台无边框窗口组件,在实现无边框窗口效果的同时,保留窗口的基本功能,兼容 Windows、Linux 和 macOS,并支持 Acrylic、Mica 等窗口特效。```python import sys from PyQt5.QtWidgets import QApplication from qframelesswindow import FramelessWindow class Window(FramelessWindow):def __init__(self, parent=None):super().__init__(parent=parent)self.setWindowTitle("PyQt-Frameless-Window")self.titleBar.raise_()if __name__ == '__main__':app = QApplication(sys.argv)demo = Window()demo.show()sys.exit(app.exec_())```

quark-auto-save
Python第 115 期

quark-auto-save

夸克网盘自动转存工具。这是一款基于 Python 开发的夸克网盘自动化工具,支持网盘签到、自动转存、文件命名整理、推送提醒和自动刷新 Emby 媒体库等功能。

lutris
Python第 114 期

lutris

开源的 Linux 游戏平台。这是一款专为 Linux 用户设计的游戏管理平台,采用 Python 编写。它提供了友好的用户界面,极大地简化了 Linux 上的游戏安装和配置过程,让用户能够轻松安装和管理各种游戏,支持连接 Steam、GOG、Humble Bundle 等多种游戏平台,以及运行 Windows 游戏的功能。

pdfplumber
Python第 114 期

pdfplumber

轻松提取 PDF 文本和表格的 Python 库。该项目是基于 Python 的 PDF 解析与数据提取库,可轻松提取文本和表格。它能够精确获取 PDF 文档中每个字符、线条、矩形等元素的详细位置、尺寸和字体信息,并支持一键生成页面快照,方便调试。

暂无截图
Python第 114 期

pydoll

无需 WebDriver 的浏览器自动化 Python 库。这是一个用于自动化操作 Chromium 内核浏览器的 Python 库。它通过原生 DevTools 协议(CDP)直接控制浏览器,无需依赖 WebDriver,支持绕过验证码、模拟真人交互、网页截图等功能。```python import asyncio from pydoll.browser import Chrome from pydoll.constants import Key async def baidu_search(query: str):async with Chrome() as browser:tab = await browser.start()await tab.go_to('https://www.baidu.com')search_box = await tab.find(tag_name='textarea', id='chat-textarea')await search_box.insert_text(query)await search_box.press_keyboard_key(Key.ENTER)await asyncio.sleep(5)asyncio.run(baidu_search('HelloGitHub'))```

pyscript
Python第 114 期

pyscript

直接在浏览器中用 Python 创建应用程序。该项目可以让开发者在 HTML 文件中直接使用 Python 编程语言,像 JavaScript 文件一样引入和执行 Python 代码,支持更小的 MicroPython、常见第三方库和操作页面元素等功能,适用于快速创建交互的数据可视化、网站原型和在线教育等 Web 应用场景。来自 [@Veeja Liu](https://hellogithub.com/user/70zTMbIqVf9dvZp) 的分享```html from pyscript import display display("HelloGitHub!") # this goes to the DOM print("Hello terminal") # this goes to the terminal```

暂无截图
Python第 114 期

tinyio

极简易用的 Python 事件循环库。这是一个仅约 300 行代码的轻量级 Python 事件循环库,为开发者提供比 asyncio 更加简洁易用的异步编程体验。```python import tinyio def slow_add_one(x: int):yield tinyio.sleep(1)return x + 1 def foo():four, five = yield [slow_add_one(3), slow_add_one(4)]return four, five loop = tinyio.Loop()out = loop.run(foo())assert out == (4, 5)```

Claude-Code-Usage-Monitor
Python第 113 期

Claude-Code-Usage-Monitor

Claude 用量实时监控助手。这是一个用于实时监控和记录开发者在使用 Claude AI 时产生的 Token 用量及费用的工具,支持用量统计、预算告警和套餐设置等功能。

docs
Python第 113 期

docs

开源的实时协作文档平台。这是一款支持多人协作的在线文档平台,完全免费开源。它基于 Django+React 构建,支持离线编辑自动同步、文档/页面级访问控制和 AI 辅助(摘要、翻译、纠错)等功能。

nicegui
Python第 113 期

nicegui

简单易用的 Python UI 框架。该项目是基于 Python 的用户界面框架,支持纯 Python 开发 Web 或桌面应用。只需几行代码,即可生成按钮、图表、3D 场景等 50 多种组件,解决了传统 Python GUI 跨平台麻烦、前端开发门槛高等问题。```python from nicegui import ui from nicegui.events import ValueChangeEventArguments def show(event: ValueChangeEventArguments):name = type(event.sender).__name__ui.notify(f'{name}: {event.value}')ui.button('Button', on_click=lambda: ui.notify('Click'))with ui.row():ui.checkbox('Checkbox', on_change=show)ui.switch('Switch', on_change=show)ui.radio(['A', 'B', 'C'], value='A', on_change=show).props('inline')with ui.row():ui.input('Text input', on_change=show)ui.select(['One', 'Two'], value='One', on_change=show)ui.link('And many more...', '/documentation').classes('mt-8')ui.run()```

rendergit
Python第 113 期

rendergit

一键渲染 GitHub 仓库为静态网页的工具。该项目可以一键将 GitHub 仓库代码渲染为单页静态 HTML,提供便于阅读的 Human 模式,支持语法高亮、Markdown 渲染和侧边栏导航等功能。同时还支持 LLM 模式,方便将项目代码快速复制到 AI 工具作为上下文。

StreamCap
Python第 113 期

StreamCap

开箱即用的多平台直播录制工具。这是一款采用 Python 开发的多平台直播流自动录制工具,支持批量录制、开播自动录制、定时任务和多格式输出等功能。

jupyterlite
Python第 112 期

jupyterlite

在浏览器中运行的 JupyterLab。这是一个完全在浏览器中运行的 JupyterLab,无需安装 Python 或配置服务器。它提供在线交互式 Python 编程环境,可作为静态文件部署到任何静态网站托管平台(如 GitHub Pages)。

mediacms
Python第 112 期

mediacms

基于 Django 的在线视频平台。这是一个基于 Django 和 React 构建的视频内容管理平台,可快速搭建中小型视频网站。它内置转码、搜索、播放列表、权限管理和移动端适配等功能,支持视频、音频、图像、PDF 等多媒体格式。

暂无截图
Python第 112 期

requests-futures

优雅的异步 Python HTTP 请求库。这是一个为 Python requests 库提供异步 HTTP 请求的轻量级封装库。它结合了 requests 库的易用性和标准库 concurrent.futures 的并发能力,支持以非阻塞方式发送单个或多个 HTTP 请求,从而显著提升 I/O 密集型应用的性能。```python from concurrent.futures import as_completed from pprint import pprint from requests_futures.sessions import FuturesSession session = FuturesSession()futures=[session.get(f'http://httpbin.org/get?{i}') for i in range(3)]for future in as_completed(futures):resp = future.result()pprint({'url': resp.request.url,'content': resp.json(),})```

UavNetSim
Python第 112 期

UavNetSim

无人机通信网络仿真平台。这是一款基于 Python(SimPy)的无人机通信网络仿真平台,专为组建无人机集群通信而设计。它提供无人机网络的多个层级(如网络层、MAC 层、物理层),以及无人机移动性和能量模型的全面建模,适用于无人机网络的协议设计、性能评估和可视化分析。

来自 @凝望,划过星空 的分享
ZSim
Python第 112 期

ZSim

《绝区零》战斗模拟器。这是一个专为游戏《绝区零》设计的伤害模拟和战斗仿真工具,支持全自动仿真、可视化报告、自定义 APL 等功能。玩家可自由选择游戏中的角色与装备,并配置属性参数,然后通过模拟器计算出在特定队伍组合下的预期伤害。

暂无截图
Python第 111 期

borg

高效的数据去重备份工具。这是一个高效、安全的去重备份工具,即使文件结构或位置发生变化,也能精准识别重复数据。它采用内容定义分块去重算法,能显著节省存储空间,内置 lz4、zstd、zlib、lzma 等多种压缩选项,并支持 SSH 远程备份。

bunkerweb
Python第 111 期

bunkerweb

开源的 Web 应用防火墙。该项目是用 Python 开发的 Web 应用防火墙,可以无缝集成至现有环境(Linux、Docker、K8s 等)。它基于 Nginx 构建、默认配置安全,拥有简单易用的 Web 界面,支持自动配置 HTTPS A+ 评级、安全 Header 和丰富的插件系统,可检测常见的攻击模式、限制访问、防止机器人和爬虫等恶意访问,保护你的网站、API 和 Web 应用。

ebook2audiobook
Python第 111 期

ebook2audiobook

电子书转有声书的工具。这款开源工具可以轻松将电子书转换为有声书,支持多种常见格式,如 EPUB、MOBI、PDF 等。它通过 calibre 提取电子书文本,并运用语音合成技术(Text-to-Speech),能够生成包含章节和元数据的有声书,支持包括中文在内的 1000 多种语言。

isd
Python第 111 期

isd

终端交互式 systemd 管理工具。这是一个带终端用户界面(TUI)的 systemd 管理工具,支持模糊搜索、自动预览、智能 sudo、快捷键等功能,简化了对 systemd 单元(如服务、定时任务等)的管理体验。

romm
Python第 111 期

romm

模拟器游戏玩家必备的 ROM 管理器。这是一个基于 Python 开发的 ROM 管理和模拟器平台,支持在浏览器中直接运行游戏。用户可通过简洁的 Web 界面,轻松扫描本地游戏、自动抓取游戏封面、统一管理多平台 ROM 资源,兼容 400 多种游戏平台。

bilive
Python第 110 期

bilive

一站式 B 站直播录制与切片工具。这是一款 B 站直播录制工具,支持自动录制、切片、弹幕渲染与投稿。它速度快、占用少、硬件要求低,通过集成语音识别、视频理解、图像生成等模型,实现从录制、切片到上传的全流程自动化。

来自 @John Howe 的分享
暂无截图
Python第 110 期

FlareSolverr

绕过 CF 保护的代理服务器。该项目能够帮助开发者绕过 Cloudflare 和 DDoS-GUARD 防护。它通过在请求间设置代理服务,模拟 Chrome 无头浏览器完成挑战,可将真实页面的 HTML 和 Cookie 返回给调用方,从而绕过保护机制。

来自 @红泥醅酒 的分享
暂无截图
Python第 110 期

pympler

Python 内存分析工具。该项目是用于内存分析与监控的 Python 库,支持对象大小测量(asizeof)、实时内存监控(muppy)、生命周期分析等功能。```python from pympler import asizeof obj = [1, 2, (3, 4), 'text']asizeof.asizeof(obj) # 176 print(asizeof.asized(obj, detail=1).format())[1, 2, (3, 4), 'text'] size=176 flat=48(3, 4) size=64 flat=32'text' size=32 flat=32 1 size=16 flat=16 2 size=16 flat=16```

暂无截图
Python第 110 期

python-mastery

高级 Python 编程教程。该项目是由 Python 社区知名专家 David Beazley (《Python Cookbook》作者)编写的高级 Python 编程课程,内容完全开源,涵盖生成器、协程、元编程、模块与包等,适合有一定 Python 基础的学习者。

throttled-py
Python第 110 期

throttled-py

开箱即用的 Python 限流库。这是一款轻量且灵活的 Python 限流库,同步/异步皆可用。它支持多种限流算法,包括固定窗口、滑动窗口、令牌桶、漏桶和 GCRA,适配 Redis 存储后端,并提供函数、装饰器和上下文管理器等多种灵活用法。```python from throttled import RateLimiterType, Throttled, rate_limiter, store, utils throttle = Throttled(# 📈 Use Token Bucket algorithm using=RateLimiterType.TOKEN_BUCKET.value,# 🪣 Set quota: 1,000 tokens per second (limit), bucket size 1,000 (burst)quota=rate_limiter.per_sec(1_000, burst=1_000),# 📁 Use In-Memory storage store=store.MemoryStore(),)def call_api() -> bool:# 💧 Deduct 1 token for key="/ping"result = throttle.limit("/ping", cost=1)return result.limited if __name__ == "__main__":# 💻 Python 3.12.10, Linux 5.4.119-1-tlinux4-0009.1, Arch: x86_64, Specs: 2C4G.# ✅ Total: 100000, 🕒 Latency: 0.0068 ms/op, 🚀 Throughput: 122513 req/s (--)# ❌ Denied: 98000 requests benchmark: utils.Benchmark = utils.Benchmark()denied_num: int = sum(benchmark.serial(call_api, 100_000))print(f"❌ Denied: {denied_num} requests")```

asciimatics
Python第 109 期

asciimatics

生成 ASCII 动画的 Python 库。这是一个用于构建交互式文本界面(TUI)和 ASCII 艺术动画的 Python 库,支持彩色文本、自动检测终端窗口尺寸变化、ASCII 艺术效果、鼠标和键盘输入等功能。```python from asciimatics.effects import Cycle, Stars from asciimatics.renderers import FigletText from asciimatics.scene import Scene from asciimatics.screen import Screen def demo(screen):effects = [Cycle(screen,FigletText("HelloGitHub", font='big'),int(screen.height / 2 - 8)),Cycle(screen,FigletText("ROCKS!", font='big'),int(screen.height / 2 + 3)),Stars(screen, 200)]screen.play([Scene(effects, 500)])Screen.wrapper(demo)```

暂无截图
Python第 109 期

fail2ban

抵御暴力破解攻击的防护工具。这是一款用 Python 编写的入侵检测与防御系统(IDS/IPS),保护服务器免受暴力破解攻击。它能够实时监控日志文件,一旦检测到多次认证失败,便会自动更新防火墙规则,拒绝来自可疑 IP 的连接,支持 SSH、FTP、Web 等多种常见服务。

isort
Python第 109 期

isort

自动整理 Python 导入语句的工具。该项目能够自动识别并规范 Python 项目中的 import 语句,支持多行格式、智能缩进和灵活的排序规则,轻松统一代码风格和导入规范。

pyper
Python第 109 期

pyper

简化 Python 并发编程的框架。这是一个致力于让 Python 并发处理数据变得简单的框架。它基于函数式编程模式,提供了统一且简洁的 API,支持多种并发任务类型,适用于 ETL 系统、数据微服务、数据采集等场景。来自 [@sam86970](https://hellogithub.com/user/EsKGlh9iXvAfYaJ) 的分享```python import time from pyper import task def len_strings(x: str, y: str) -> int:return len(x) + len(y)def sleep(data: int) -> int:time.sleep(data)return data def calculate(data: int) -> bool:time.sleep(data)return data % 2 == 0 pipeline = (task(len_strings)| task(sleep, workers=3)| task(calculate, workers=2))```

stock
Python第 109 期

stock

基于 Python 的股票分析系统。该项目是专为股票市场数据设计的 Web 平台,支持 Docker 一键部署。它采用 Python、Tornado 和 pandas 开发,能够自动获取每日股票行情、资金流向、分红等数据,并提供基本面、技术面、信息面等多种选股策略,支持股票指标计算、K 线形态识别、自定义策略模板等功能,适配 PC 和移动端设备。

audiblez
Python第 108 期

audiblez

一键将电子书转换为有声书。这是一款能够将 EPUB 格式的电子书转换为 M4B 格式有声书的桌面工具。它采用 Kokoro-82M 语音合成模型,生成效果流畅自然,支持 CUDA 加速和多种语言,包括中文、英文、日文等。

beaverhabits
Python第 108 期

beaverhabits

无需设定目标的习惯追踪工具。这是一款基于 Python 开发的自托管习惯追踪 Web 应用,帮助用户轻松记录和管理日常习惯。它提供适配移动端的直观界面,专注于习惯的持续养成,而非单纯追求目标达成,让养成好习惯变得更自然。

deepdiff
Python第 108 期

deepdiff

深入比较 Python 对象的库。这是一个用于深度比较、搜索和操作 Python 对象数据的 Python 库。它提供了多种模块,支持处理字典、可迭代对象、字符串等 Python 对象的差异,以及内容搜索、哈希生成和增量更新等功能。

gixy
Python第 108 期

gixy

让 NGINX 配置更安全。这是一个活跃的 NGINX 配置静态分析工具,专注于发现配置中的安全问题。它能够检测多种常见的 NGINX 配置漏洞,如服务器端请求伪造、主机伪造、路径遍历等,支持命令行或在 Docker 和 Kubernetes 中使用。

toga
Python第 108 期

toga

轻松打造原生桌面应用的 Python 框架。这是一个简单易用的 Python GUI 框架,专为构建跨平台原生桌面应用而设计。它结合了 Python 的简洁易懂和操作系统的原生体验,支持丰富的组件库和展示动态网页等功能。```python import toga def button_handler(widget):print("hello")def build(app):box = toga.Box()button = toga.Button("Hello world", on_press=button_handler, style={"margin": 50, "flex": 1})box.add(button)return box def main():return toga.App("First App", "org.beeware.toga.examples.tutorial", startup=build)if __name__ == "__main__":main().main_loop()```

input-remapper
Python第 107 期

input-remapper

让 Linux 用户轻松改变按键行为的工具。该项目是专为 Linux 系统设计的工具,能够轻松改变输入设备的行为。它支持多种输入设备,包括键盘、鼠标、游戏手柄和操作杆。

kitty
Python第 107 期

kitty

GPU 加速的终端模拟器。这是一款基于 GPU 加速的跨平台终端模拟器,专为开发者提供流畅的命令行操作体验。它通过 OpenGL 渲染技术,显著提升渲染速度,相较传统终端更快,同时支持自定义字体、多窗口、多标签和高分辨率显示等功能。

manga-image-translator
Python第 107 期

manga-image-translator

一键翻译图片内文字的工具。这是一个用于识别并翻译图片内文字的 Python 项目,支持日语、中文、英语和韩语等多种语言,适用于翻译漫画、插图中的文字内容。

piku
Python第 107 期

piku

极简的 PaaS 工具。这是一款轻量级的 PaaS 工具,用户只需通过简单的 git push 命令即可将应用部署到服务器。它仅有 1500 行 Python 代码,能够在低配置设备(如 Raspberry Pi)上运行,支持 Python、Node.js 和 Java 等多种编程语言,以及多应用部署、免费 SSL 证书等功能。

posting
Python第 107 期

posting

炫酷的终端 API 调试工具。这是一款现代化的终端 HTTP 客户端,堪称 Postman 和 Insomnia 的命令行版。它为开发者提供了便捷的 TUI 使用体验,并优化了键盘操作流程,支持自动补全、语法高亮、Vim 键绑定和请求存储在本地文件(YAML)等功能。

暂无截图
Python第 106 期

chonkie

轻量级的文本分块 Python 库。这是一个专为 RAG 应用设计的轻量级文本分块库,它简单易用、速度快,能够按固定大小分割文本,支持多种分词器、向量模型和灵活的分块策略,适用于长文本处理、构建 RAG 应用等场景。```python from chonkie import TokenChunker from tokenizers import Tokenizer tokenizer = Tokenizer.from_pretrained("gpt2")chunker = TokenChunker(tokenizer)chunks = chunker("HelloGitHub! Chonkie, the chunking library is so cool! I love the tiny hippo hehe.")for chunk in chunks:print(f"Chunk: {chunk.text}")print(f"Tokens: {chunk.token_count}")```

暂无截图
Python第 106 期

fonttools

操作字体文件的 Python 库。这是一个用于编辑和转换字体文件的 Python 库,支持 TrueType 和 OpenType 字体与 XML 格式(TTX)之间的相互转换,兼容多种字体格式,适用于编辑、调试和优化字体等场景。```python from fontTools.afmLib import AFM f = AFM("Tests/afmLib/data/TestAFM.afm")print(f["A"])# (65, 668, (8, -25, 660, 666))f.FontName = "TestFont HelloGitHub"f.write("testfont-hellogithub.afm")```

httpdbg
Python第 106 期

httpdbg

轻松捕获 Python 程序中 HTTP(S) 请求的工具。该项目是用于帮助开发者调试 Python 程序中的 HTTP(S) 请求的工具。通过 pyhttpdbg 命令运行程序,即可在浏览器中查看发出的 HTTP 请求,支持脚本运行、交互式控制台、单元测试多种运行模式。

pwndbg
Python第 106 期

pwndbg

专为逆向工程设计的 GDB/LLDB 插件。这是一个专为 GDB 和 LLDB 调试器设计的插件,支持寄存器状态显示、内存搜索、内存泄漏查找等功能,适用于底层软件开发、硬件调试和逆向工程等场景。

PyPSA
Python第 106 期

PyPSA

电力系统分析 Python 库。这是一个用于电力系统分析的 Python 库,专注于电力和多能源系统的建模与优化。它基于 Pandas、NumPy、GLPK、Cbc 等库,能够高效计算最优潮流优化(OPF)、线性和非线性电力流,并支持模拟各种电力和能源系统组件的功能。```python import pypsa# create a new network n = pypsa.Network()n.add("Bus", "mybus")n.add("Load", "myload", bus="mybus", p_set=100)n.add("Generator", "mygen", bus="mybus", p_nom=100, marginal_cost=20)# load an example network n = pypsa.examples.ac_dc_meshed()# run the optimisation n.optimize()# plot results n.generators_t.p.plot()n.plot()# get statistics n.statistics()n.statistics.energy_balance()```

暂无截图
Python第 105 期

grip

GitHub README 文件本地预览工具。这是一款用于本地预览 GFM(GitHub Flavored Markdown)文件的工具。它通过 Flask 和 GitHub Markdown API,能在本地环境中渲染并显示与 GitHub 完全一致的 Markdown 文件效果。```$ cd myrepo$ grip* Running on http://localhost:6419/```

ha_xiaomi_home
Python第 105 期

ha_xiaomi_home

小米开源的 HA 插件。该项目是由小米开源的 Home Assistant 集成插件,可实现小米 IoT 智能设备与 Home Assistant 的无缝集成,支持设备发现、状态同步、远程控制等功能。

来自 @魔羽Magic 的分享
暂无截图
Python第 105 期

pex

相见恨晚的 Python 项目打包工具。这是一个开源的 Python 项目打包工具,专为跨环境部署和无法访问公网的部署场景设计。它能够将 Python 项目及其所有依赖,甚至是 Python 解释器(可选),打包成单个可执行文件(.pex),让开发者无需安装运行环境,即可直接运行 Python 程序,支持 Linux 和 macOS 系统。```$ pex "uvicorn[standard]" -c uvicorn --inject-args 'example:app --port 8888' -ohellogithub-app.pex$ ./hellogithub-app.pex INFO: Started server process [2014]INFO: Waiting for application startup.INFO: ASGI 'lifespan' protocol appears unsupported.INFO: Application startup complete.INFO: Uvicorn running on http://127.0.0.1:8888 (Press CTRL+C to quit)^CINFO: Shutting down INFO: Finished server process [2014]```

暂无截图
Python第 105 期

runlike

快速获取 Docker 容器启动命令的工具。这是一个用于解析运行中容器的工具,可自动生成对应的 docker run 启动命令。它能够提取容器的配置信息,包括端口绑定、映射卷、环境变量、网络设置等,适用于复制、调试或迁移容器的场景。来自 [@猎隼丶止戈reNo7](https://hellogithub.com/user/Ew59HqRWjPe0zZO) 的分享```$ runlike -p redis docker run \--name=redis \-e "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \-e "REDIS_VERSION=2.8.9" \-e "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-2.8.9.tar.gz" \-e "REDIS_DOWNLOAD_SHA1=003ccdc175816e0a751919cf508f1318e54aac1e" \-p 0.0.0.0:6379:6379/tcp \--detach=true \myrepo/redis:7860c450dbee9878d5215595b390b9be8fa94c89 \redis-server --slaveof 172.31.17.84 6379```

viztracer
Python第 105 期

viztracer

开箱即用的 Python 性能分析工具。这是一款高效、易用的 Python 程序性能分析工具,帮助开发者调试代码和分析性能瓶颈。它针对性能追踪做了优化,尽可能减少对被分析程序的性能影响,支持时间线追踪、多进程分析和模块化追踪等功能,并生成直观、交互式的分析报告。来自 [@孤胆枪手](https://hellogithub.com/user/i1wAIyo6P3NXkxm) 的分享```# 安装pip install viztracer# 生成分析报告viztracer my_script.py arg1 arg2# 可视化查看报告vizviewer result.json```

ASCII-generator
Python第 104 期

ASCII-generator

生成文字图的 Python 库。该项目是一款将图片和视频转换为 ASCII 艺术风格作品的工具,即用字符艺术化地表达图像内容。它使用简单,支持将图片转换为文本或 ASCII 风格图片,以及将视频转换为 ASCII 风格视频,并提供颜色选择等多种功能。

暂无截图
Python第 104 期

icloud_photos_downloader

iCloud 照片下载工具。这是一款用 Python 开发的工具,可用于批量下载 iCloud 照片。它提供了复制、同步和移动三种操作模式,支持 Live Photos、自动删除重复数据、增量下载等功能,适合用于 iCloud 照片迁移和备份等场景。

暂无截图
Python第 104 期

imagehash

基于哈希值识别相似图像的 Python 库。该项目的算法不同于传统的加密哈希算法(如 MD5、SHA-1),它专注于图像内容的相似度分析,对有细微不同的图片可生成相似的哈希值,用于计算图片相似度,支持平均哈希、感知哈希、差分哈希等算法,适用于快速识别版权图片等场景。```python from PIL import Image import imagehash# 计算第一个图像的哈希值hash = imagehash.average_hash(Image.open('tests/data/imagehash.png'))print(hash)# 哈希值:ffd7918181c9ffff# 计算第二个图像的哈希值otherhash = imagehash.average_hash(Image.open('tests/data/peppers.png'))print(otherhash)# 哈希值:9f172786e71f1e00# 比较两个图像哈希值是否相等print(hash == otherhash) # False# 计算并输出哈希值的汉明距离print(hash - otherhash) # 33 汉明距离(差异度)```

暂无截图
Python第 104 期

mopidy

Python 写的音乐服务器。这是一个易扩展的 Python 音乐服务器,支持扫描和播放本地音乐,并集成多个在线音乐流媒体,还可通过插件扩展音乐源、管理界面和在线播放器等功能。

暂无截图
Python第 104 期

pyarmor

强大的 Python 脚本加密工具。这是一个用于对 Python 脚本进行混淆处理的命令行工具,仅需一条命令即可完成加密操作。它提供丰富的加密选项,用来平衡安全与性能,支持将加密后的脚本绑定到特定机器、设置加密有效期和 Themida 保护等功能。

来自 @Xuefeng Xu 的分享
backtrader
Python第 103 期

backtrader

Python 量化交易回测框架。该项目是用 Python 编写的回测库,专为开发和测试交易策略而设计。它可以从 CSV 文件、在线数据源和 pandas 中提取数据,支持多策略同步运行、生成交易策略的可视化图表等功能。内置 100 多种指标,包括趋势、成交量和波动性等指标。```python from datetime import datetime import backtrader as bt class SmaCross(bt.SignalStrategy):def __init__(self):sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)crossover = bt.ind.CrossOver(sma1, sma2)self.signal_add(bt.SIGNAL_LONG, crossover)cerebro = bt.Cerebro()cerebro.addstrategy(SmaCross)data0 = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1),todate=datetime(2012, 12, 31))cerebro.adddata(data0)cerebro.run()cerebro.plot()```

core
Python第 103 期

core

开源的智能家居平台。这是一个用 Python 编写的智能家居平台,旨在整合不同品牌的智能设备,提供个性化的家庭自动化体验。它解决了传统系统互操作性(Interoperability)差的问题,允许用户在同一平台上自由控制和联动 Apple HomeKit、米家、Aqara、涂鸦等设备,极大提升了智能家居的灵活性和便捷性。适合希望打破单一平台限制的用户,尤其是追求高性价比的 DIY 智能家居爱好者。

来自 @无间之钟 的分享
paperless-ngx
Python第 103 期

paperless-ngx

纸质文档数字化存档工具。这是一个基于 Django 的文档管理系统,可将纸质文档转换成可搜索的在线存档。不同于普通的扫描仪将实体书变为难以检索的图片或 PDF 格式,它通过文档扫描器实现电子化,转化为易于检索的格式。

暂无截图
Python第 103 期

pipreqs

快速生成 Python 项目依赖文件的工具。该项目可以根据 Python 项目中的导入语句,生成 requirements.txt 文件。它能够自动识别项目中使用的库,无需安装即可生成依赖库列表。

暂无截图
Python第 103 期

pokeapi

宝可梦数据的 API 服务。这是一个基于 Django 构建的宝可梦数据 RESTful API 服务,为开发者提供全面的宝可梦数据库,包括小精灵的动作、属性、技能和进化信息等详细资料。

暂无截图
Python第 102 期

aiofiles

Python 异步文件处理库。在 Python 中,传统的文件 I/O 是阻塞的,该项目提供了异步(非阻塞)的文件操作。它的 API 与 Python 标准库相似,支持 async/await 语法。```python async with aiofiles.open('filename', mode='r') as f:contents = await f.read()print(contents)'My file contents'```

cupy
Python第 102 期

cupy

GPU 版的 NumPy 和 SciPy。这是一个利用 GPU 加速数值计算的 Python 库,与 NumPy 和 SciPy 兼容。你可以轻松地将现有的 NumPy/SciPy 代码,迁移到 NVIDIA CUDA 或 AMD ROCm 平台上运行,部分情况下速度可提升 100 倍以上。```python>>> import cupy as cp>>> x = cp.arange(6).reshape(2, 3).astype('f')>>> x array([[ 0., 1., 2.],[ 3., 4., 5.]], dtype=float32)>>> x.sum(axis=1)array([ 3., 12.], dtype=float32)```

curl_cffi
Python第 102 期

curl_cffi

模拟浏览器指纹的 HTTP 客户端。这是一个用 Python 写的 HTTP 客户端库,可以模拟浏览器 TLS、JA3 和 HTTP/2 指纹。它开箱即用、速度快,并且支持 WebSocket 和异步。```python from curl_cffi import requests# Notice the impersonate parameter r = requests.get("https://tools.scrapfly.io/api/fp/ja3", impersonate="chrome")print(r.json())# output: {..., "ja3n_hash": "aa56c057ad164ec4fdcb7a5a283be9fc", ...}# the js3n fingerprint should be the same as target browser# To keep using the latest browser version as `curl_cffi` updates,# simply set impersonate="chrome" without specifying a version.# Other similar values are: "safari" and "safari_ios"r = requests.get("https://tools.scrapfly.io/api/fp/ja3", impersonate="chrome")```

LibreTranslate
Python第 102 期

LibreTranslate

可离线部署的翻译 API 服务。该项目是基于离线翻译引擎 Argos Translate 构建的翻译 API 服务。它不依赖第三方翻译服务,可轻松自建翻译 API 服务,支持自动语言检测、API 密钥和访问频率限制等功能。

s-tui
Python第 102 期

s-tui

基于终端的 CPU 监控和压测工具。这是一个 Python 写的命令行工具,可在终端中以图形方式实时显示 CPU 温度、频率、功率和利用率等信息。它还支持安装 FIRESTARTER 等工具,对 CPU 进行压力测试。

暂无截图
Python第 101 期

Box

高级字典操作的 Python 库。这是一个提升 Python 字典易用性的库,兼容原生字典。它支持点表示法(dict.user.name)轻松访问和设置值,并能自动创建缺失的键,避免出现 KeyError 异常。来自 [@Bit0rls1Mc](https://hellogithub.com/user/F7PCYiI3d9WBfpZ) 的分享```python from box import Box hg_box = Box({ "HelloGitHub": { "star": "89k", "fork": "9.5k" } })hg_box.HelloGitHub.star# 89k hg_box.to_json(filename="hg.json")new_box = Box.from_json(filename="hg.json")new_box.keys()# dict_keys(['HelloGitHub'])```

Game-Cheats-Manager
Python第 101 期

Game-Cheats-Manager

游戏修改器管理工具。这是一款强大的游戏修改器管理工具,支持搜索、下载、启动、导入和更新游戏修改器等功能。

linkding
Python第 101 期

linkding

极简的浏览器书签管理平台。该项目是基于 Django 构建的浏览器书签管理平台,它提供了简洁易用的 Web 界面和强大的搜索功能,支持标签分类、批量编辑和稍后阅读等功能,并配有 Chrome 和 Firefox 插件,方便用户随时随地保存和访问书签。

mkdocs-material
Python第 101 期

mkdocs-material

快速生成 Material 风格的文档网站。该项目是基于 MkDocs 构建的美观且功能丰富的文档网站生成器,支持 Markdown、搜索、移动端适配、多语言等功能,适用于快速创建技术文档、产品手册和教程等类型的网站。

来自 @猎隼丶止戈reNo7 的分享
SeleniumBase
Python第 101 期

SeleniumBase

功能全面的浏览器自动化框架。该项目是基于 Selenium 的 Python 自动化测试框架,集成了爬虫、自动化测试和生成报告等多种功能。它提供了丰富的示例,并且独特的 UC 模式,可以帮助开发者在进行浏览器自动化操作时避免被检测出来。```python from seleniumbase import BaseCase BaseCase.main(__name__, __file__)class TestSimpleLogin(BaseCase):def test_simple_login(self):self.open("seleniumbase.io/simple/login")self.type("#username", "demo_user")self.type("#password", "secret_pass")self.click('a:contains("Sign in")')self.assert_exact_text("Welcome!", "h1")self.assert_element("img#image1")self.highlight("#image1")self.click_link("Sign out")self.assert_text("signed out", "#top_message")```

buzz
Python第 100 期

buzz

音频转录与翻译工具。该项目是基于 Whisper 的音频转录和翻译工具,它开箱即用且操作简单,支持语音转文字、音频翻译、多种语言和离线使用,适用于 macOS、Windows 和 Linux 平台。

helium
Python第 100 期

helium

简化浏览器自动化的 Python 库。该项目是基于 Selenium 的轻量级 Python 库,它通过提供更高级和易用的 API,让用 Python 编写浏览器自动化脚本变得更加简单和方便,支持 Chrome 和 Firefox 浏览器。

jurigged
Python第 100 期

jurigged

Python 的热重载工具。这是一个专为 Python 提供热重载功能的库,它支持在程序运行时修改和更新 Python 代码,无需重启程序。```# Loop over a function jurigged --loop function_name script.py jurigged --loop module_name:function_name script.py# Only stop on exceptions jurigged --xloop function_name script.py```

暂无截图
Python第 100 期

python-sortedcontainers

更好用的 Python 排序集合库。该项目提供了 SortedList、SortedDict 和 SortedSet 三种数据结构,完全兼容 List、Dict、Set 内置数据类型的 API。尽管采用纯 Python 编写,其速度却可以媲美使用 C 扩展实现的 Python 库。```python from sortedcontainers import SortedList sl = SortedList(['e', 'a', 'c', 'd', 'b'])# sl: SortedList(['a', 'b', 'c', 'd', 'e'])sl *= 10_000_000 sl.count('c') # 10000000 sl[-3:] # ['e', 'e', 'e']from sortedcontainers import SortedDict sd = SortedDict({'c': -3, 'a': 1, 'b': 2})# sd: SortedDict({'a': 1, 'b': 2, 'c': -3})sd.popitem(index=-1) # ('c', -3)from sortedcontainers import SortedSet ss = SortedSet('abracadabra')# ss: SortedSet(['a', 'b', 'c', 'd', 'r'])ss.bisect_left('c') # 2```

暂无截图
Python第 100 期

radon

Python 代码质量分析工具。这是一款强大的 Python 代码度量工具,它能够计算多种代码指标,包括 McCabe 复杂度、Halstead 指标和可维护性指数,适用于 Python 代码质量评估和持续集成等场景。```$ radon cc sympy/solvers/solvers.py -a -nc sympy/solvers/solvers.py F 346:0 solve - F F 1093:0 _solve - F F 1434:0 _solve_system - F F 2647:0 unrad - F F 110:0 checksol - F F 2238:0 _tsolve - F F 2482:0 _invert - F F 1862:0 solve_linear_system - E F 1781:0 minsolve_linear_system - D F 1636:0 solve_linear - D F 2382:0 nsolve - C 11 blocks (classes, functions, methods) analyzed.Average complexity: F (61.0)```

CleanMyWechat
Python第 99 期

CleanMyWechat

自动删除电脑端微信缓存数据的工具。该项目是用 PyQt5 写的 Windows 工具,它可以清理微信电脑客户端自动下载的无用数据,支持自动识别账号、多账号管理,以及选择清理文件的类型和设置清理多久以前文件等功能。

searxng
Python第 99 期

searxng

尊重个人隐私的 Python 元搜索引擎。该项目是基于 Flask 构建的聚合搜索引擎,能够整合来自 70 多个搜索引擎的搜索结果。它安装简单、不追踪用户行为,支持选择搜索引擎、安全搜索和多语言等功能。

来自 @孤胆枪手 的分享
暂无截图
Python第 99 期

vulture

Python 的“死”代码侦探。这是一个 Python 的静态代码分析工具,它可以找出 Python 项目中未使用的代码,仅需一条命令,就能清理没用和无效的 Python 函数、变量和代码片段。

warp
Python第 99 期

warp

编写高性能仿真程序的 Python 框架。该项目是英伟达开源的 Python 框架,它通过即时编译技术将 Python 代码,转换为可以在 CPU 或 GPU 上运行的高效内核代码,可用于编写模拟物理环境、碰撞检测和图形处理等程序。```python import warp as wp import numpy as np num_points = 1024@wp.kernel def length(points: wp.array(dtype=wp.vec3),lengths: wp.array(dtype=float)):# thread index tid = wp.tid()# compute distance of each point from origin lengths[tid] = wp.length(points[tid])# allocate an array of 3d points points = wp.array(np.random.rand(num_points, 3), dtype=wp.vec3)lengths = wp.zeros(num_points, dtype=float)# launch kernel wp.launch(kernel=length,dim=len(points),inputs=[points, lengths])print(lengths)```

wsgidav
Python第 99 期

wsgidav

基于 WSGI 的 WebDAV 服务器。WebDAV 是一种允许在网络上直接编辑和管理文件的通信协议,多用于文档共享、云存储和文件同步等场景。该项目是用 Python 写的 WebDAV 服务器,可独立运行、自带简单的 Web 界面,支持 MS Office 文档在线编辑和身份验证等功能。

buku
Python第 98 期

buku

强大的浏览器书签管理工具。这是一款开源的书签命令行管理工具,它轻量、隐私安全且易于使用,支持从主流浏览器导入书签、自动获取书签信息、跨平台同步和强大的搜索功能。

flagsmith
Python第 98 期

flagsmith

轻松管理功能开关和配置的平台。这是一个开源、功能齐全的特征标志(Feature flag)和远程配置平台,专为中小型团队设计。它是基于 Django REST framework 构建的 Web 应用,用于管理应用功能的开关和远程配置,支持 A/B 测试、多变量测试和组织管理等功能,适用于逐步推出新功能、进行市场测试、环境管理等场景。

marimo
Python第 98 期

marimo

创新的响应式 Python 笔记本。该项目是专为 Python 设计的响应式笔记本(notebook),即在与 UI 交互时自动执行并更新所依赖的代码单元格,从而保证代码和输出的一致性。它以纯 Python 文件的形式存储,便于管理和运行,支持作为脚本执行或部署为可交互的 Web 应用。

umap
Python第 98 期

umap

高维数据降维的 Python 库。该项目是用于将高维数据映射到低维空间的 Python 库,帮助研究人员理解复杂数据集。与 t-SNE 相比,它在保持数据全局结构方面更加出色,能够高效地执行高维到低维的映射,适用于数据可视化、特征提取和聚类分析等多种场景。来自 [@DeShuiYu](https://hellogithub.com/user/ZWJkOqsvYbPgD8p) 的分享```python import umap from sklearn.datasets import load_digits digits = load_digits()mapper = umap.UMAP().fit(digits.data)umap.plot(mapper, labels=digits.target)```

Windrecorder
Python第 98 期

Windrecorder

你的个人屏幕记忆搜索工具。该项目是专为 Windows 设计的屏幕记录工具,并提供搜索和回放功能。它会持续录制屏幕内容,同时保证数据安全(不上传、不联网),利用 OCR 和图片识别技术,让用户可以轻松搜索和回看屏幕活动历史。

dangerzone
Python第 97 期

dangerzone

将不可信文档转化为安全 PDF 的工具。这是一个确保文档安全的开源项目,它可以将存在潜在危险(来路不明、电子邮件附件)的 PDF 文件、办公文档或图片,在隔离的沙盒环境中进行转换,生成安全的 PDF 文件。

great-tables
Python第 97 期

great-tables

用 Python 制作漂亮的表格。这个 Python 库可以用来制作实用且美观的表格。它提供了一套表格组件,通过组合不同的表格部分,如表头、表尾、行标签(stub)以及跨列标签(spanner labels)等,帮助 Python 开发者轻松制作漂亮的数据表格。来自 [@Ted LI](https://hellogithub.com/user/rUYaLGSEtWFsw6I) 的分享```python from great_tables import GT from great_tables.data import sp500# Define the start and end dates for the data range start_date = "2010-06-07"end_date = "2010-06-14"# Filter sp500 using Pandas to dates between `start_date` and `end_date`sp500_mini = sp500[(sp500["date"] >= start_date) & (sp500["date"]

暂无截图
Python第 97 期

python-miio

用于控制小米智能家电的 Python 库。该项目提供了一个 Python 库和命令行工具,可以用来控制使用小米的 miIO 和 MIoT 协议的设备。借助它用户可以轻松地与小米智能设备进行通信和远程控制,包括扫地机器人、灯泡、空气净化器等,非常适合喜欢 DIY 智能家居系统的开发者。

undetected-chromedriver
Python第 97 期

undetected-chromedriver

绕过反爬检测的 Python 库。这是一个经过优化的 Selenium WebDriver 补丁,专门用于防止浏览器自动化过程中,触发反机器人机制。它能够隐藏浏览器特征(指纹),使用起来十分方便,就像一个 Python 的第三方库一样。```python import undetected_chromedriver as uc driver = uc.Chrome(headless=True,use_subprocess=False)driver.get('https://nowsecure.nl')driver.save_screenshot('nowsecure.png')```

wereader
Python第 97 期

wereader

功能全面的微信读书笔记助手。这是一个基于 PySide6 编写的微信读书桌面客户端,不仅支持阅读书籍的功能,还有笔记模式,可查看你的全部读书笔记和热门划线等内容。

marker
Python第 96 期

marker

将 PDF 转换为 Markdown 文件的项目。这是一个能够将 PDF、EPUB 和 MOBI 格式的文件转换为 Markdown 文件的 Python 项目。相较于 Nougat,它具有更快的速度和更高的准确度,在处理英语类内容时效果最佳,但对中文的处理就要差一些。

Paper-Piano
Python第 96 期

Paper-Piano

在纸上弹钢琴。该项目使用 Python 和 OpenCV 实现图像处理和识别,通过摄像头捕获手指动作和手指下方的阴影,让用户可以通过触摸纸张来演奏钢琴。

暂无截图
Python第 96 期

pelican

Python 语言的静态网站生成器。这是一个用 Python 编写的静态网站生成器,让你可以通过编写 Markdown、reStructuredText 等格式的文本文件来创建网站,支持生成 RSS、代码语法高亮、插件扩展等功能。

posthog
Python第 96 期

posthog

开源的产品分析平台。这是一款基于 Django 构建的产品分析和用户追踪平台,它提供了丰富的功能,包括事件跟踪、漏斗分析、群体分析、A/B 测试等,适用于了解用户行为、改善产品体验的场景。

taipy
Python第 96 期

taipy

快速打造数据驱动的 Web 应用。这是一个基于 Python 和 Flask 的项目,结合了 React 等前端技术,为开发者提供了一个简洁、高效的开发框架。它能够简化数据处理、API 开发和用户界面构建的开发过程。不论是数据科学家、机器学习工程师还是 Web 开发者,都能够利用 Taipy 快速完成从原型到 Web 应用的全过程。

来自 @刘三非 的分享
暂无截图
Python第 95 期

cachetools

实用的 Python 缓存装饰器。这是一个 Python 的缓存库,它提供了多种缓存算法的数据类型和 Python 标准库的 @lru_cache 函数装饰器的变种,该库适用于避免重复计算、加速结果返回以及减少重复请求等场景。```python from cachetools import cached, LRUCache, TTLCache# speed up calculating Fibonacci numbers with dynamic programming@cached(cache={})def fib(n):return n if n < 2 else fib(n - 1) + fib(n - 2)# cache least recently used Python Enhancement Proposals@cached(cache=LRUCache(maxsize=32))def get_pep(num):url = 'http://www.python.org/dev/peps/pep-%04d/' % num with urllib.request.urlopen(url) as s:return s.read()# cache weather data for no longer than ten minutes@cached(cache=TTLCache(maxsize=1024, ttl=600))def get_weather(place):return owm.weather_at_place(place).get_weather()```

Ciphey
Python第 95 期

Ciphey

自动解密/解码各种加密算法的工具。使用该项目时,你只需输入加密的文本,无需提供具体的加密类型,它就可以在 3 秒或更短的时间内自动解密大多数的加密文本。这个项目支持 50 多种常见的加密/编码方式,包括二进制、base64、哈希和凯撒密码等。

music-tag-web
Python第 95 期

music-tag-web

编辑歌曲文件元数据的 Web 应用。这款音乐标签编辑器提供了编辑歌曲标题、专辑、艺术家、歌词、封面等信息的功能。它支持多种音频格式,包括 FLAC、APE、WAV、AIFF、MP3 和 MP4 等。此外,它还提供了自动批量修改和整理音乐文件、歌词翻译、手机端访问等实用功能。

来自 @xier 的分享
sqlite-web
Python第 95 期

sqlite-web

基于 Web 的 SQLite 数据库管理工具。这是一个用 Flask 和 peewee 编写的 SQLite 数据库 Web 管理平台。它安装简单、启动也非常方便。该项目提供了一个简单易用的界面,以及实用的 SQLite 数据管理功能,包括创建/删除表、索引、数据导入/导出、排序、SQL 查询等功能。

toolong
Python第 95 期

toolong

好用的终端日志文件处理工具。这是一个用于查看、追踪、合并和搜索,日志/JSON 长文件的命令行工具。它提供了高亮显示和实时追踪日志的功能,支持快速打开 GB 级的文件,并能根据时间戳自动合并日志文件。

DouyinLiveRecorder
Python第 94 期

DouyinLiveRecorder

一款支持多平台的直播录制工具。该项目是基于 FFmpeg 实现的多平台直播源录制工具,支持循环执行直播录制任务(循环值守)、直播状态推送、多人录制、去水印、选择画质等功能。

harlequin
Python第 94 期

harlequin

一个简单、快速、美观的终端数据库客户端。这是一个带界面的命令行数据库客户端,提供了数据库和表目录、查询编辑器、显示结果、导出数据的功能,支持 DuckDB、SQLite、Postgres、MySQL 等数据库。

khal
Python第 94 期

khal

一款简单、美观的终端日历。该项目是用 Python 写的命令行日历工具,支持快速便捷地浏览、添加和编辑事件,以及同步日历数据。

pyupgrade
Python第 94 期

pyupgrade

一键升级 Python 代码的工具。这是一个用于自动升级 Python 代码,以适应新版本语法的工具。支持升级到不同的 Python 版本、提供预览模式即查看改动变化等功能。

text_blind_watermark
Python第 94 期

text_blind_watermark

给文本加盲水印的 Python 库。通过该项目可以将一段隐秘信息嵌入到明文中,嵌入前后的明文无变化。简单说就是给文本打上隐藏水印,适合在版权保护、数据泄露溯源、数据安全等场景使用,支持 macOS 的 Chrome 浏览器、苹果备忘录、macOS/iPhone 的微信和钉钉等应用。```python from text_blind_watermark import TextBlindWatermark2 password = 'HelloGitHub'text = '这句话中有盲水印,你能提取出来吗?'watermark = 'HelloGitHub'text_blind_wm = TextBlindWatermark2(password=password)text_with_wm = text_blind_wm.embed(text=text, watermark=watermark)print(text_with_wm)```

django-tailwind
Python第 93 期

django-tailwind

Django 集成 Tailwind CSS 的库。该项目可以让你在 Django 项目中轻松地使用 Tailwind CSS 框架,内含 Tailwind CSS 官方的排版、表单、line-clamp 等插件。

frigate
Python第 93 期

frigate

一款围绕实时 AI 对象检测构建的开源 NVR。该项目基于 OpenCV 和 Tensorflow 实现在本地为 IP Camera 提供实时目标检测和安全报警等功能,还支持根据设定的规则,保留检测到物体的视频。

暂无截图
Python第 93 期

sqlglot

一个非常全面的 SQL 解析器。该项目是用 Python 写的 SQL 解析器、转译器和优化器,它可以格式化 SQL 以及支持在 20 种不同方言和 SQL 之间进行转化,可用来自定义解析器、分析查询,用编程方式构建 SQL。```python import sqlglot# SQL 转 Spark sql = """WITH baz AS (SELECT a, c FROM foo WHERE a = 1) SELECT f.a, b.b, baz.c, CAST("b"."a" AS REAL) d FROM foo f JOIN bar b ON f.a = b.a LEFT JOIN baz ON f.a = baz.a"""print(transpile(sql, write="spark", identify=True, pretty=True)[0])```

暂无截图
Python第 93 期

tablib

轻松处理表格数据集的 Python 库。该项目能够将不同格式的表格数据集,转化成统一的 Dataset 对象。它提供了动态列、标签、过滤等功能,支持 csv、df、json、yaml、xls 等格式的数据。```python import tablib data = tablib.Dataset(headers=['First Name', 'Last Name', 'Age'])for i in [('Kenneth', 'Reitz', 22), ('Bessie', 'Monke', 21)]:data.append(i)# 将数据输出成 json 格式print(data.export('json'))# [{"Last Name": "Reitz", "First Name": "Kenneth", "Age": 22}, {"Last Name": "Monke", "First Name": "Bessie", "Age": 21}]# df 对象data.export('df')# First Name Last Name Age# 0 Kenneth Reitz 22# 1 Bessie Monke 21```

talebook
Python第 93 期

talebook

一款简单好用的在线个人书库。该项目是基于 Calibre 的个人图书管理系统,后端是 Python 的 Tornado Web 框架,前端采用 Vue.js 构建。它不仅拥有美观的界面而且安装简单,支持在线阅读、导入书籍、推送到 Kindle、私人模式等功能。

暂无截图
Python第 92 期

example-code-2e

《流畅的 Python(第 2 版)》的示例代码。《流畅的 Python》是深受 Python 程序员喜爱的经典之作,该书可以帮助理解 Python 语言的核心特性和底层逻辑。但这里只有示例代码,书需要自行购买。

LaTeX-OCR
Python第 92 期

LaTeX-OCR

将数学公式转化成 LaTeX 代码。该项目可以将图片、剪贴板中的图片和屏幕截图,转化成对应的 LaTeX 代码,提供了命令行、库、GUI、Docker 多种使用方式。```python from PIL import Image from pix2tex.cli import LatexOCR img = Image.open('path/to/image.png')model = LatexOCR()print(model(img))```

Rickrack
Python第 92 期

Rickrack

一款开源的调色板桌面应用。该项目是基于 PyQt5 的调色板应用程序,旨在帮助用户轻松实现色彩的协调与搭配。它免费、无需注册、没有任何限制,支持离线使用、提取颜色、调色等功能。开箱即用无论你是绘画爱好者还是专业用户,都可以轻松上手并发挥创意。

sqlmap
Python第 92 期

sqlmap

强大的 SQL 注入工具。这是一个 Python 写的渗透测试工具,可以自动检测和利用 SQL 注入漏洞,获得数据库服务器的权限。它提供了强大的检测引擎和多种特性,包括识别数据库类型和版本、枚举用户、提权、获取数据等。

XHS-Downloader
Python第 92 期

XHS-Downloader

小红书图文/视频采集工具。该项目是基于 Python Requests 库实现的小红书作品采集器,支持获取图文/视频信息、下载完整作品、批量下载等功能,提供了 Windows 可执行文件和源码运行两种方式。

暂无截图
Python第 91 期

codespell

一条命令找出代码中的拼写错误。该项目主要用于检查文件中常见单词的拼写错误,对于变量名极少产生误报,支持指定目录、文件后缀、修改建议、忽略文件等功能。来自 [@Xuefeng Xu](https://hellogithub.com/user/k4oyT8wSU5Qfx6H) 的分享```codespell some_file some_dir/ *.ext # 检查目录下 ext 后缀文件codespell -w, --write-changes # 显示修改建议```

暂无截图
Python第 91 期

holidays

处理假期的 Python 库。该项目支持动态生成国家/地区和省份公布的法定节假日,可以快速地判断指定日期是否为节假日。```python from datetime import date import holidays cn_holidays = holidays.CN()date(2021, 10, 1) in cn_holidays # True date(2023, 10, 8) in cn_holidays # False date(2024, 2, 9) in cn_holidays # True 我看了下源码还未更新 2024 年的假期```

pwntools
Python第 91 期

pwntools

知名的 CTF 框架和漏洞利用开发库。该项目是用 Python 编写的 CTF 框架,开箱即用地提供了远程连接、网络、汇编/反汇编、ELF 模块、生成 shellcode 等功能,让 CTF 选手可以专注于编写 EXP(利用漏洞的攻击逻辑)。```python from pwn import *context(arch = 'i386', os = 'linux')r = remote('exploitme.example.com', 31337)# 这里写漏洞利用逻辑r.send(asm(shellcraft.sh()))r.interactive()```

Qexo
Python第 91 期

Qexo

漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、多种图床、自动更新、友情链接、站点统计等功能。

tacticalrmm
Python第 91 期

tacticalrmm

一个远程监控和管理 PC 的工具。该项目是采用 Django+Vue.js 构建的 IT 管理平台,支持类似 TeamViewer 的远程桌面控制、远程执行命令和脚本、上传和下载文件、警报等功能。

暂无截图
Python第 90 期

argos-translate

用 Python 写的开源离线翻译库。该项目是基于 OpenNMT(神经网络机器翻译框架)的离线翻译 Python 库,它不依赖任何第三方翻译接口,支持翻译包括中文在内的 30 多种语言。```python import argostranslate.package import argostranslate.translate from_code = "en"to_code = "es"# Download and install Argos Translate package argostranslate.package.update_package_index()available_packages = argostranslate.package.get_available_packages()package_to_install = next(filter(lambda x: x.from_code == from_code and x.to_code == to_code, available_packages))argostranslate.package.install_from_path(package_to_install.download())# Translate translatedText = argostranslate.translate.translate("Hello World", from_code, to_code)print(translatedText)# '¡Hola Mundo!'```

mwmbl
Python第 90 期

mwmbl

一个用 Python 写的开源、非营利搜索引擎。这是一款采用 pandas、FastAPI、scikit-learn、jusText 构建的非营利、无广告、无跟踪的小型搜索引擎,它界面简约、速度快,搜索结果无“外界因素”干扰。

prettymaps
Python第 90 期

prettymaps

绘制好看的地图海报的 Python 库。该项目可以将 OpenStreetMap 的地图数据绘制成漂亮的地图海报,上手简单可自定义填充颜色。

暂无截图
Python第 90 期

webdriver_manager

轻松管理 WebDriver 的 Python 库。经常写爬虫的小伙伴应该都遇到过找 WebDriver 路径的情况吧!用了这个项目,将无需一次又一次地重复寻找 WebDriver 在哪里啦。```python# 之前from selenium import webdriver driver = webdriver.Chrome('/home/user/drivers/chromedriver')# 现在from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())```

youre-the-os
Python第 90 期

youre-the-os

模拟计算机操作系统的游戏。这是一个 Python 写的 Web 游戏,在游戏中玩家扮演的是一台计算机的操作系统。玩家必须通过管理进程、内存和 I/O 事件,不让进程闲置太久,因为进程等待太久就会退出,如果退出的进程达到一定数量后,计算机就会重启则游戏失败。

暂无截图
Python第 89 期

DrissionPage

类似 selenuium 的网页自动化工具。这是一个基于 Python 的网页自动化工具,支持 Chromium 内核浏览器。它将控制浏览器和收发请求两大功能合二为一,并提供了统一、简洁的接口。来自 [@马小六](https://hellogithub.com/user/MdXgAyzJSFbTeHh) 的分享```python# 下载星巴克产品图from DrissionPage import SessionPage from re import search# 以s模式创建页面对象page = SessionPage()# 访问目标网页page.get('https://www.starbucks.com.cn/menu/')# 获取所有class属性为preview circle的元素divs = page.eles('.preview circle')# 遍历这些元素for div in divs:# 用相对定位获取当前div元素后一个兄弟元素,并获取其文本name = div.next().text# 在div元素的style属性中提取图片网址并进行拼接img_url = div.attr('style')img_url = search(r'"(.*)"', img_url).group(1)img_url = f'https://www.starbucks.com.cn{img_url}'# 执行下载page.download(img_url, r'.\imgs', rename=name)```

暂无截图
Python第 89 期

learndb-py

从头用 Python 写一个数据库。该项目是用 Python 从零实现一个关系型数据库,从而更好地了解数据的内部构造,此数据库仅可作为学习和练手项目,无法应用在生产环境。

nvitop
Python第 89 期

nvitop

用 top 命令的方式查看 NVIDIA GPU 和进程状态。这是一款 NVIDIA 设备和进程监控工具,拥有多彩高亮的界面,实时更新的进程和设备信息,支持过滤进程、鼠标控制、发送信号等功能。

upiano
Python第 89 期

upiano

运行在命令行里的电子琴。这是一个小型的电子琴命令行应用,它安装简单、运行方便,支持鼠标和键盘两种操作方式。

watchgha
Python第 89 期

watchgha

在本地查看 GitHub Action 运行状态的工具。仅需一条命令就可以实时显示当前分支,在 GitHub Action 上运行状态的命令行工具。

cudf
Python第 88 期

cudf

支持 GPU 的数据库处理 Python 库。它相当于支持 GPU 的 pandas,处理数据的速度直接起飞。提供了类似 pandas 的 API,支持加载、合并、聚合、过滤等方式操作数据。```python import cudf, requests from io import StringIO url = "https://github.com/plotly/datasets/raw/master/tips.csv"content = requests.get(url).content.decode('utf-8')tips_df = cudf.read_csv(StringIO(content))tips_df['tip_percentage'] = tips_df['tip'] / tips_df['total_bill'] * 100# display average tip by dining party size print(tips_df.groupby('size').tip_percentage.mean())```

暂无截图
Python第 88 期

fastapi-users

开箱即用的 FastAPI 用户管理。该项目可以快速将用户注册和身份认证功能集成到 FastAPI 项目中,支持注册、登录、密码重置、邮箱验证、OAuth2、自定义身份验证等功能。

暂无截图
Python第 88 期

faststream

为你的 Web 服务轻松集成 Kafka 的 Python 库。基于 Pydantic、AIOKafka 构建的 Python 库,可用于快速开发与 Kafka 交互的异步 Python 程序。```python from fastkafka import FastKafka from pydantic import BaseModel, Field from fastkafka._components.logger import get_logger logger = get_logger(__name__)class HelloWorld(BaseModel):msg: str = Field(...,example="Hello",description="Demo hello world message",)kafka_brokers = {"demo_broker": {"url": "","description": "local demo kafka broker","port": "",}}app = FastKafka(kafka_brokers=kafka_brokers)@app.consumes()async def on_hello_world(msg: HelloWorld):logger.info(f"Got msg: {msg}")```

暂无截图
Python第 88 期

networkx

强大的 Python 网络分析库。这是一个用来创建、操作和研究复杂网络结构的 Python 库,内置常用的数据结构和图算法,支持生成无向图(Graph)、有向图(DiGraph)、多重无向图(MultiGraph)、多重有向图(MultiDiGraph),可用于图论研究、原型设计、教学等场景。```python# 查找无向图中两个节点的最短路径>>> import networkx as nx>>> G = nx.Graph()>>> G.add_edge("A", "B", weight=4)>>> G.add_edge("B", "D", weight=2)>>> G.add_edge("A", "C", weight=3)>>> G.add_edge("C", "D", weight=4)>>> nx.shortest_path(G, "A", "D", weight="weight")['A', 'B', 'D']```

rpg_tactical_fantasy_game
Python第 88 期

rpg_tactical_fantasy_game

采用 pygame 开发的 RPG 回合制游戏。这是一款 Python 写的 2D 策略回合制游戏,项目依赖少、代码简单,就算是 Python 新手也能看懂。作者其实并不擅长制作回合制游戏,只是因为喜欢玩这种游戏,所以就有了这个项目。

Auto_Bangumi
Python第 87 期

Auto_Bangumi

全自动追番工具。该项目是 Python 写的自动订阅更新和下载动画的工具,用户只需在 Mikan Project 上订阅番剧,然后简单配置一下就可以安心追番了。

openedx-platform
Python第 87 期

openedx-platform

Django 写的开源慕课平台。该项目是由麻省理工和哈佛大学联合开源的大规模开放式在线课堂(MOOC)平台,它提供了内容管理和学习管理服务。该平台支持在线讲课、创建课程、发布前预览、内容库、学生反馈、考试等功能。虽然它功能丰富,但界面十分简陋。

PyQt-Fluent-Widgets
Python第 87 期

PyQt-Fluent-Widgets

Fluent Design 风格的 PyQt 组件库。基于 PyQt/PySide 的 Fluent Design 风格组件库,内含多种美观、实用的组件,支持亮暗主题切换和自定义主题色。

stitching
Python第 87 期

stitching

强大的图片拼接 Python 库。这是一个基于 OpenCV 的拼接模块开发的用于快速拼接图片的 Python 库,支持在 Python 脚本中使用和命令行方式。```python import stitching stitcher = stitching.Stitcher()# 多个文件panorama = stitcher.stitch(["img1.jpg", "img2.jpg", "img3.jpg"])# 通配符panorama = stitcher.stitch(["img?.jpg"])```

sympy
Python第 87 期

sympy

进行符号运算的 Python 库。这是一个功能齐全、纯 Python 写的计算机代数系统(CAS),可用于计算复杂的数学问题。它支持解方程、离散数学、微积分、逻辑计算、几何、概率与统计等功能。```>>> from sympy import Symbol, cos>>> x = Symbol('x')>>> e = 1/cos(x)>>> print(e.series(x, 0, 10))1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)```

domain-admin
Python第 86 期

domain-admin

域名和 SSL 证书监测平台。采用 Flask+peewee+Vue3 构建的域名和 SSL 证书到期监测平台,支持批量导入域名、多域名管理、到期通知等功能。

donkeycar
Python第 86 期

donkeycar

构建自动驾驶模型车的开源平台。一个由遥控模型车(RC CAR)、树莓派、Python 组成的 DIY 自动驾驶平台,可用于实现自动驾驶的玩具车。该项目官网还提供了完整的配套硬件,大概需要 250 美元,组装时间约 2 个小时。

暂无截图
Python第 86 期

musicpy

用 Python 创作音乐。该项目可以用简洁的 Python 代码生成一段音乐,它提供了和弦、音符和音阶等几个基本类型,需要具备一定的音理基础才能上手。```python from musicpy import *# 尼龙弦吉他分解和弦演奏一个和弦进行guitar = (C('CM7', 3, 1/4, 1/8)^2 |C('G7sus', 2, 1/4, 1/8)^2 |C('A7sus', 2, 1/4, 1/8)^2 |C('Em7', 2, 1/4, 1/8)^2 |C('FM7', 2, 1/4, 1/8)^2 |C('CM7', 3, 1/4, 1/8)@1 |C('AbM7', 2, 1/4, 1/8)^2 |C('G7sus', 2, 1/4, 1/8)^2) * 2 play(guitar, bpm=100, instrument=25)```

OpenBB
Python第 86 期

OpenBB

高颜值的命令行投资分析工具。一个有着高颜值的金融市场行情查看和分析工具,实现了在终端偷偷看股市的功能。同时,它开放了对 Pandas、Numpy、Jupyter、Pytorch、Tensorflow 等等框架的支持,帮助深入加工和分析数据辅助投资。

pygwalker
Python第 86 期

pygwalker

用可视化的方式操作 pandas 数据集。该项目可以将 pandas 的 dataframe 数据对象转化成一个可交互的图形界面,支持通过拖拽字段的方式进行数据分析。

来自 @databook 的分享
datasette
Python第 85 期

datasette

一个用于探索和发布数据的 Python 工具。该项目可以将 CSV、JSON、数据库等各种形式的数据,在几分钟内发布成 API 接口或网页,轻松实现数据集的 Web 可视化、搜索、分析等功能。

erpnext
Python第 85 期

erpnext

一款完全开源的 ERP 系统。它是采用 Python+JavaScript 开发的企业资源规划(ERP)系统,可用于构建中/小型企业的客户关系、人力资源、销售/采购/仓库、财务等管理系统。

mercury
Python第 85 期

mercury

能够将 Jupyter Notebook 变成 Web 应用的框架。该项目可以让你在 Python Notebook 中添加交互式部件,实现自动生成一个漂亮的 Web 应用,方便分享和展示你的成果。

暂无截图
Python第 85 期

pyotp

Python 的一次性密码库。它是一个能够生成/验证一次性密码(短信验证码)的 Python 库,可以在 Web 应用或其它需要登录的系统上,实现双因素(2FA) 或多因素(MFA) 身份验证方法。

sqladmin
Python第 85 期

sqladmin

FastAPI/Starlette 的后台管理界面。这是一个灵活的 SQLAlchemy 管理后台,采用 Tabler 构建 Web 界面,支持集成到 FastAPI 和 Starlette,实现类似 Django 内置的管理后台功能。```python from fastapi import FastAPI from sqladmin import Admin, ModelView app = FastAPI()admin = Admin(app, engine)class UserAdmin(ModelView, model=User):column_list = [User.id, User.name]admin.add_view(UserAdmin)```

bar_chart_race
Python第 84 期

bar_chart_race

基于 Python 的动态条形图。通过该项目可以用 Python 创建条形图比赛动画,显示数据排名的动态条形图,直观地展示数据变化过程。

来自 @databook 的分享
暂无截图
Python第 84 期

dataset

为懒人准备的操作数据库的 Python 库。它基于 SQLAlchemy 构建了一个简单的数据层,可以让查询、写入、更新数据库中的数据,就像读写 JSON 文件一样简单,支持 SQLite、PostgreSQL 和 MySQL 数据库。```python import dataset db = dataset.connect('sqlite:///:memory:')table = db['sometable']table.insert(dict(name='John Doe', age=37))table.insert(dict(name='Jane Doe', age=34, gender='female'))john = table.find_one(name='John Doe')```

GreaterWMS
Python第 84 期

GreaterWMS

可商用的开源仓库管理系统。该项目是采用福特亚太区售后物流仓储供应链流程的仓库系统,它提供了客户管理、订单管理、库存管理、供应商管理、盘点等模块,支持手机、电脑等多种设备。

secretflow
Python第 84 期

secretflow

蚂蚁开源的隐私计算框架。隐私计算即通过技术的手段实现数据在参与方可用不可见,让数据在安全和不泄露隐私的情况下流通、开放。该项目采用 Python 语言编写,支持包括 MPC、FL、TEE、HE、DP 在内的多种主流隐私计算技术。

来自 @vector 的分享
shynet
Python第 84 期

shynet

极简的网站分析平台。这是一个基于 Django 构建的网站分析平台,它很小、够用、界面友好、不追踪 cookie、支持多用户,追踪脚本不到 1KB。

eg
Python第 83 期

eg

常用的 Linux 命令示例查询工具。它提供了 Linux 命令的常见用法,不仅使用方便而且示例简洁实用。

gel
Python第 83 期

gel

一款采用图-关系模型的新型开源数据库。一个底层由 PostgreSQL 提供支持的开源数据库,在兼容关系数据库特性的同时,结合了 ORM 的声明模式和 GraphQL 式的深度查询。自带 WebUI 界面,支持在线编辑数据、查询、关系可视化等功能。```type Person {required property name -> str;}type Movie {required property title -> str;multi link actors -> Person;}```

manim
Python第 83 期

manim

用于创建数学动画的 Python 框架。它可以用简单的代码制作出精美的数学动画,通过动画的方式直观地解释一些复杂的数学问题。来自 [@databook](https://hellogithub.com/user/1qC4w2Ey6bu0fgR) 的分享```python from manim import *class SquareToCircle(Scene):def construct(self):circle = Circle()square = Square()square.flip(RIGHT)square.rotate(-3 * TAU / 8)circle.set_fill(PINK, opacity=0.5)self.play(Create(square))self.play(Transform(square, circle))self.play(FadeOut(square))# 运行:manim -p -ql example.py SquareToCircle```

sunfish
Python第 83 期

sunfish

100 多行代码的 Python 国际象棋引擎。一个仅用 Python 标准库和 131 行代码实现的命令行国际象棋游戏。它注释丰富结构清晰,核心代码由国际象棋逻辑、策略搜索和用户界面三个部分组成。

xalpha
Python第 83 期

xalpha

Python 写的基金投资管理回测引擎。该项目可以获取基金的信息与净值,支持精确到分的投资账户记录整合、分析和可视化,简单的策略回测以及根据预设策略的定时投资提醒,适合资金反复进出的定投型和网格型投资者。```python jiaoyidan = xa.record(path) # 额外一行先读入 path 处的 csv 账单shipan = xa.mul(status=jiaoyidan) # Let's rock shipan.summary() # 看所有基金总结效果shipan.get_stock_holdings() # 查看底层等效股票持仓```

bandit
Python第 82 期

bandit

查找 Python 代码中常见安全问题的工具。该项目是 PyCQA 出品的 Python 代码检测工具,知名的 isort 和 flake8 就是他们开源的。

暂无截图
Python第 82 期

devguide

CPython 开发人员指南。这份指南来自 Python 官方,介绍了如何为 CPython 做贡献,适用于任何阶段的贡献者。

Django-Styleguide
Python第 82 期

Django-Styleguide

Django 使用姿势指南。这是一份 Django 编码风格指南,它来自于一线团队的多年经验总结,希望能够帮助你构建出更好的 Django 应用程序。

暂无截图
Python第 82 期

numpy-100

Numpy 的练习册。该项目包含了 100 个关于 Python 常用的数据处理库 Numpy 的练习和解决方案。```python# How to sum a small array faster than np.sum? (★★☆)Z = np.arange(10)np.add.reduce(Z)```

prefect
Python第 82 期

prefect

Python 的数据流编排平台。如果将获取、清洗、处理数据的程序当作一个个分散的任务,该项目可以将这些任务整合到工作流中,实现在一个 Web 平台部署、安排和监控它们的执行。```python from prefect import flow, task@task def say_hello():print("Hello, World! I'm HelloGitHub!")@flow("Prefect Flow"):def h_flow():say_hello()# run the flow!h_flow() # "Hello, World! I'm HelloGitHub!"```

Bottles
Python第 81 期

Bottles

一款可轻松实现 Linux 上运行 Windows 软件的工具。该项目提供了清爽易用的 GUI 界面,用户就算不懂任何编程技巧,也可以轻而易举地在 Linux 系统上,运行 Windows 的游戏和软件。

暂无截图
Python第 81 期

django-cacheops

一款灵活的 Django ORM 缓存库。该项目使用 redis 作为缓存,可通过装饰器设置数据库查询结果的过期时间。```python from cacheops import cached_as@cached_as(Article, timeout=120)def article_stats():return {'tags': list(Article.objects.values('tag').annotate(Count('id')))'categories': list(Article.objects.values('category').annotate(Count('id')))}```

doccano
Python第 81 期

doccano

一款开源的文本标记工具。它可以提供文本分类、序列标记、情感分析、文本摘等功能,帮助快速完成打标工作,支持中文和多人协作。

FileCodeBox
Python第 81 期

FileCodeBox

一款匿名口令分享文本和文件的服务。该项目是基于 FastAPI+SQLite3 开发的文件分享服务,支持分享文件、口令提取文件等功能,无需注册即可完成文件提取。

来自 @神经蛙bAwXs 的分享
暂无截图
Python第 81 期

python-systemd-tutorial

用 Python 编写 systemd 服务的教程。许多 Linux 发行版都用 systemd 来管理系统的服务,比如开机启动、自动重启、守护进程等。该项目讲解了如何入门 systemd,并提供了一个 Python 脚本和 systemd unit 文件,可以在此基础上快速开发出 systemd 服务。```python if __name__ == '__main__':import time import systemd.daemon print('Starting up ...')time.sleep(10)print('Startup complete')systemd.daemon.notify('READY=1')while True:print('Hello from the Python Demo Service')time.sleep(5)```

calibre
Python第 80 期

calibre

一款功能强大的电子书管理工具。它是集下载、格式转化、制作、管理于一体的电子书工具,比如可以将 txt 文本,转化成包含作者信息和书籍封面的 mobi 文件,制作完成后还可以直接发送到 Kindle 设备上。

changedetection.io
Python第 80 期

changedetection.io

简单好用的网站变更检测、监控和通知服务。基于 Flask+Selenium 构建的 Web 服务,可以在目标网站发生变化时发出通知,可用于监控商品降价、工作机会、版本发布、最新内容等,支持 Docker 的安装方式。

Macast
Python第 80 期

Macast

一款轻巧的投屏接收器。该项目可以让电脑接收来自手机的视频、图片和音乐投屏,支持手机上的主流视频和音乐软件,以及其它符合 DLNA 协议的软件。无打扰地运行在状态栏和菜单栏,适用于 Windows、macOS、Linux 操作系统。

reloadium
Python第 80 期

reloadium

Python 热重载调试工具。在不重启程序的前提下,通过这个项目可以查看改动后、最新的 Python 代码运行效果,以及每行代码的耗时。有了它可以更高效地调试 Python 代码,强烈推荐在 PyCharm 和 VSCode 上使用。

暂无截图
Python第 80 期

rocketry

更加人性化的 Python 调度库。可通过 Python 装饰器语法,进行任务调度的 Python 库。它简单、优雅、高效,支持定时、并发(异步、多线程、多进程)、条件触发等功能。```python from rocketry import Rocketry from rocketry.conds import daily app = Rocketry()@app.task(daily)def do_daily():...@app.task(daily & file_exists("data.csv"))def do_things():...if __name__ == '__main__':app.run()```

latexify_py
Python第 79 期

latexify_py

用于生成 LaTeX 数学公式的 Python 库。LaTeX 是一种基于 ΤΕΧ 的排版系统,对于展示复杂的数学公式表现极为出色。该项目可以用 Python 函数,轻松生成复杂的 LaTeX 数学公式描述。```python import math import latexify@latexify.with_latex def solve(a, b, c):return (-b + math.sqrt(b**2 - 4*a*c)) / (2*a)print(solve(1, 4, 3))print(solve)# 输出如下# -1.0# \mathrm{solve}(a, b, c)\triangleq \frac{-b + \sqrt{b^{2} - 4ac}}{2a}```

matrix-webcam
Python第 79 期

matrix-webcam

在“矩阵”中进行视频会议。可以让你在视频会议时,实现类似《黑客帝国》数字雨的效果,支持 Teams/Zoom/Skype 视频软件,适用于 Windows、macOS、Linux 操作系统。

pdf2docx
Python第 79 期

pdf2docx

可将 PDF 转换成 docx 文件的 Python 库。该项目通过 PyMuPDF 库提取 PDF 文件中的数据,然后采用 python-docx 库解析内容的布局、段落、图片、表格等,最后自动生成 docx 文件。```python from pdf2docx import parse pdf_file = '/path/to/sample.pdf'docx_file = 'path/to/sample.docx'# convert pdf to docx parse(pdf_file, docx_file)```

暂无截图
Python第 79 期

schedule

简单友好的 Python 任务调度库。该项目人性化的 API 设计,让开发者仅用几行代码就能轻松实现定时任务。它不依赖任何第三方库,全部代码也就一个文件 800 多行,拥有丰富的注释和单元测试,源码阅读起来十分轻松。```python import schedule import time def job():print("I'm working...")schedule.every(10).minutes.do(job)schedule.every().hour.do(job)schedule.every().day.at("10:30").do(job)schedule.every().monday.do(job)schedule.every().wednesday.at("13:15").do(job)schedule.every().minute.at(":17").do(job)while True:schedule.run_pending()time.sleep(1)```

Umi-OCR
Python第 79 期

Umi-OCR

基于 PaddleOCR 的 OCR 图片转文字识别软件。完全免费、可离线使用的开源软件,支持截屏识别文字、批量导入图片、横/竖排文字,还可以自动忽略水印区域,适用于 Win10 操作系统。

来自 @孤胆枪手 的分享
django-silk
Python第 78 期

django-silk

Django 的性能分析工具。它可以将 Django 服务的平均耗时、请求次数、查询 SQL、代码性能分析等信息展示到一个页面,开发者有了这些信息就能够更快地找到 Django 服务的性能瓶颈和响应慢的原因。```shell# 安装pip install django-silk# 中间件的方式使用MIDDLEWARE = [...'silk.middleware.SilkyMiddleware',...]INSTALLED_APPS = (...'silk')```

Games
Python第 78 期

Games

纯 Python 实现的桌面小游戏集合。该项目包含 20 多个不重样的趣味小游戏,它们都是采用 Python 开发运行简单,用到的库包括 cocos2d、pygame、PyQt 等。虽然这些游戏可玩性较低,但项目简单十分适合新手学习。

OCRmyPDF
Python第 78 期

OCRmyPDF

可以把 PDF 文件变成可搜索文件的工具。它使用 Tesseract OCR 引擎,将 PDF 的内容识别成文本,然后给 PDF 文件增加 OCR 文本层。从而实现可搜索和复制 PDF 的内容,已支持 100 多种语言。

暂无截图
Python第 78 期

pendulum

让 Python 处理时间更简单的库。该项目不仅提供了更加简单易用的 API,而且还兼容 datetime 标准库,可以直接替代码中的 datetime 对象。它提供了很多人性化的时间处理方式,比如时间加减、多长时间的描述以及时区的处理等等。```python>>> import pendulum>>> now_in_paris = pendulum.now('Europe/Paris')>>> now_in_paris'2016-07-04T00:49:58.502116+02:00'>>> tomorrow = pendulum.now().add(days=1)>>> past = pendulum.now().subtract(minutes=2)>>> past.diff_for_humans()'2 minutes ago'>>> delta = past - last_week>>> delta.hours 23>>> delta.in_words(locale='en')'6 days 23 hours 58 minutes'```

pg_activity
Python第 78 期

pg_activity

类似 top 的 PostgreSQL 数据库命令行监控工具。一条命令就能实时查看 PostgreSQL 数据库状态和每条 SQL 语句执行详情、耗时、占用资源、读/写速度等信息的工具。

dooit
Python第 77 期

dooit

命令行待办事项工具。用 Python 写的交互式命令行 todo 工具,操作简单支持快捷键和鼠标,界面精致可自定义主题和图标。

gradio
Python第 77 期

gradio

用 Python 为模型创建演示界面。这是一个用于构建机器学习和数据科学演示的 Python 库,它包含多种输入和展示的组件,使用起来极其方便,只用几行代码就可以创建出演示机器学习模型的 Web 界面。```python import gradio as gr def sketch_recognition(img):pass# Implement your sketch recognition model here...gr.Interface(fn=sketch_recognition, inputs="sketchpad", outputs="label").launch()```

label-studio
Python第 77 期

label-studio

开源的数据标注工具。支持音频、文本、图像、视频、时间序列等,多种类型数据的标注和注释工具。```# 安装pip install -U label-studio# 运行label-studio```

暂无截图
Python第 77 期

libtmux

用 Python 操作 tmux 的库。通过该项目就可以使用 Python 代码,自动操控 tmux 应用的会话、窗口、窗格。```python import libtmux server = libtmux.Server()server.list_sessions()# [Session($3 foo), Session($1 libtmux)]```

nas-tools
Python第 77 期

nas-tools

NAS 媒体库资源自动整理工具。支持资源检索和订阅、媒体库整理和通知服务的 NAS 媒体库工具,这是一个用爱发电的项目,可以不爱但请不要伤害。

whoogle-search
Python第 77 期

whoogle-search

自架纯净谷歌搜索服务。这是一个注重保护用户隐私的元搜索引擎,它会返回过滤掉广告后的 Google 搜索结果,而且不追踪 IP、不存 Cookie。支持 Docker 部署既简单又快速,适合注重隐私的用户。

diagrams
Python第 76 期

diagrams

用 Python 代码图解系统架构。程序员在做技术方案的时候,系统架构图是必不可少的。该项目将绘制架构图时所需的图标,封装成了对应的类极易调用,文档还提供了丰富的示例,让你分分钟就能上手,轻松用 Python 快速绘制出一份精美且清晰的架构图,这样不仅能省去拖拽调整连线的步骤,而且代码还可以复用,以便应对不断迭代升级的架构。```python with Diagram("Advanced Web Service with On-Premise", show=False):ingress = Nginx("ingress")metrics = Prometheus("metric")metrics > primary with Cluster("Database HA"):primary = PostgreSQL("users")primary - PostgreSQL("replica") > primary aggregator = Fluentd("logging")aggregator >> Kafka("stream") >> Spark("analytics")ingress >> grpcsvc >> aggregator```

fg-data-profiling
Python第 76 期

fg-data-profiling

能够自动生成 pandas DataFrame 分析报告的库。虽然 pandas 自带的 df.describe 函数可以方便地生成统计报告,但是信息较少。该项目能够自动生成一份 df 多维度的 HTML 分析报告,包含列的类型、缺失情况、数值分布、行重复率、占用内存大小等信息,有助于更好地了解数据情况。

labelImg
Python第 76 期

labelImg

图形化界面的图像标注工具。用 Python 和 Qt 编写的图像标注桌面应用,简单方便下载就能用,适用于 Windows、Linux、macOS。标注数据支持 PASCAL VOC 格式的 XML 文件和 YOLO 的 txt 文件。

MechanicalSoup
Python第 76 期

MechanicalSoup

自动与网站交互的轻量级 Python 库。我们写爬虫一般是请求+解析两步走,该项目将 Requests(请求) 和 BeautifulSoup(解析) 两大 Python 爬虫常用库,封装成一个浏览器对象(StatefulBrowser),将上面说的两步并成一步。后面仅需一个浏览器对象,就可以完成请求页面、过滤内容、提交表单、跳转地址等操作,使得代码更加简单、操作更加方便。又因为它不依赖浏览器进程,所以相较于 Selenium 它更加轻巧,但缺点是不支持 JS 动态渲染的页面。```python import re import mechanicalsoup# Connect to Google browser = mechanicalsoup.StatefulBrowser()browser.open("https://www.google.com/")# Fill-in the form browser.select_form('form[action="/search"]')browser["q"] = "MechanicalSoup"# Note: the button name is btnK in the content served to actual# browsers, but btnG for bots.browser.submit_selected(btnName="btnG")# Display links for link in browser.links():target = link.attrs['href']# Filter-out unrelated links and extract actual URL from Google's# click-tracking.if (target.startswith('/url?') and not target.startswith("/url?q=http://webcache.googleusercontent.com")):target = re.sub(r"^/url\?q=([^&]*)&.*", r"\1", target)print(target)```

orange3
Python第 76 期

orange3

互动式数据分析桌面工具。一款面向不会编程人群的数据挖掘和数据可视化工具箱。内置多种图表类型、支持可视化编程,无需写代码即可做出简单、实用的数据分析软件,多用于教学和实验室等场景。

DearPyGui
Python第 75 期

DearPyGui

强大的 Python GUI 库。底层采用 GPU 渲染提供了卓越的性能,内置多种现成的部件和样式控制,文档详细包含丰富的示例,可以轻松上手。```python import dearpygui.dearpygui as dpg def save_callback():print("Save Clicked")dpg.create_context()dpg.create_viewport()dpg.setup_dearpygui()with dpg.window(label="Example Window"):dpg.add_text("Hello world")dpg.add_button(label="Save", callback=save_callback)dpg.add_input_text(label="string")dpg.add_slider_float(label="float")dpg.show_viewport()dpg.start_dearpygui()dpg.destroy_context()```

kopf
Python第 75 期

kopf

用 Python 操作 Kubernetes 的框架。Kubernetes(k8s) 是一个容器编排系统,它本身提供了命令行工具(kubectl),但有时无法实现较为复杂的操作。通过该项目可以用 Python 轻松完成,需要条件判断、事件触发等复杂的 k8s 操作。```python import kopf@kopf.timer('kopfexamples', interval=1)def my_timer(spec, **kwargs):print(f"Object's spec: {spec}")```

暂无截图
Python第 75 期

nonebot2

Python 异步聊天机器人框架。该项目基于 Python 的异步特性,可以轻松处理大量的消息。提供命令行脚手架、支持多种 IM 平台,能够快速构建聊天机器人、消息通知等项目。```shell$ pip install nb-cli$ nb[?] What do you want to do?❯ Create a New Project Run the Bot in Current Folder Driver ->Adapter ->Plugin ->...```

暂无截图
Python第 75 期

sqlfluff

SQL 代码风格检查工具。编程语言的 linter 工具随处可见,但是少有 SQL 的工具。该项目就是用来检查、统一 SQL 代码风格的工具,支持 MySQL、BigQuery、Hive 等多种 SQL 方言。```shell$ pip install sqlfluff$ echo " SELECT a + b FROM tbl; " > test.sql$ sqlfluff lint test.sql --dialect ansi== [test.sql] FAIL L: 1 | P: 1 | L050 | Files must not begin with newlines or whitespace.L: 1 | P: 3 | L003 | First line has unexpected indent L: 1 | P: 11 | L039 | Unnecessary whitespace found.L: 1 | P: 14 | L039 | Unnecessary whitespace found.L: 1 | P: 27 | L001 | Unnecessary trailing whitespace.```

Archery
Python第 74 期

Archery

在线 SQL 审核平台。采用 Django+Bootstrap 框架开发而成,支持 MySQL、Oracle 等数据库的 SQL 上线、备份、慢日志查询等功能。[在线尝试](https://demo.archerydms.com/)

Handright
Python第 74 期

Handright

模拟手写体中文的 Python 库。基于 PIL 开发实现的工具库,能够输出手写体中文的图片,支持自定义背景图```python# coding: utf-8 from PIL import Image, ImageFont from handright import Template, handwrite text = "分享 GitHub 上有趣、入门级开源项目"template = Template(background=Image.new(mode="1", size=(1024, 2048), color=1),font=ImageFont.truetype("path/to/my/font.ttf", size=100),)images = handwrite(text, template)for im in images:assert isinstance(im, Image.Image)im.show()```

OneForAll
Python第 74 期

OneForAll

功能强大的子域收集工具。具有强大的子域收集能力、支持子域验证、速度快等特点的子域扫描工具

pyenv
Python第 74 期

pyenv

简单易用的 Python 版本管理工具。开发者有时候因为历史遗留问题,需要维护依赖不同 Pyhton 版本的项目,这时就需要安装和管理多个 Python 版本,这是一件十分痛苦的事情。而 pyenv 恰好完美地解决了这一痛点,它支持 global、local、shell 三种模式,开发者可以根据情况灵活地切换不同的 Python 版本,这一切仅需一条命令```安装 pyenv:brew install pyenv安装 Python:pyenv install 3.10.4切换版本:pyenv shell|local|global shell:当前 shell local:当前目录global:全局```

xxh
Python第 74 期

xxh

在 SSH 服务器时带上自己喜欢的 shell。你的 shell 里是不是塞满了快捷脚本、工具和颜色,但在 SSH 远程连接服务器时,你就会失去这一切。xxh 可以把你最喜欢的 shell 带到任何地方```Oh My Zsh:source xxh.zsh anyhost +I xxh-plugin-zsh-ohmyzsh +if +q xonsh:xxh anyhost +s xonsh```

暂无截图
Python第 73 期

docker-py

用 Python 操作 Docker 的库。Docker 官方出品的 Python 库,可以用来批量、自动管理镜像```python import docker client = docker.from_env()client.images.pull('nginx')#client.containers.run("ubuntu:latest", "echo hello world")# 'hello world\n'client.containers.list()# [, , ...]```

memray
Python第 73 期

memray

Python 的内存分析器。帮你分析 Python 应用的内存使用情况,找到内存泄漏的原因、占用内存多的代码、内存使用率高的原因。支持生成内存报告(火焰图、表格、树状图)和实时报告等模式,以及统计结果等功能- 表格报告:memray table [options]- 实时报告:memray run --live application.py- 统计结果:memray stats [options]

modin
Python第 73 期

modin

更快、类似 pandas 的数据处理和分析库。底层通过 Ray 或 Dask 加速计算,上层兼容大部分 pandas API。所以使用起来十分简单,仅需更改一行代码即可从 pandas 无缝切换到 Modin,同时获得更快的数据处理速度```python# import pandas as pd import modin.pandas as pd import numpy as np frame_data = np.random.randint(0, 100, size=(2**10, 2**8))df = pd.DataFrame(frame_data)```

pikepdf
Python第 73 期

pikepdf

用于读取和写入 PDF 文件的 Python 库```python import pikepdf with pikepdf.open('input.pdf') as pdf:num_pages = len(pdf.pages)del pdf.pages[-1]pdf.save('output.pdf')```

pinry
Python第 73 期

pinry

分享图片的开源网站。该项目前后端分离采用 Vue.js + Django 等技术栈,网站以平铺的方式展示图片,支持浏览、上传和搜索图片以及管理后台、个人页、增加标签等功能

pokete
Python第 72 期

pokete

运行在终端里的口袋妖怪类游戏。虽然游戏图像采用简单的 ASCII 码构建,但商店、小精灵、对战等功能一应俱全```运行方法:# pip install scrap_engine$ git clone https://github.com/lxgr-linux/pokete.git$ ./pokete/pokete.py```

rembg
Python第 72 期

rembg

简单实用的删除图像背景/抠图工具```python from rembg import remove from PIL import Image input_path = 'input.png'output_path = 'output.png'input = Image.open(input_path)output = remove(input)output.save(output_path)```

saleor
Python第 72 期

saleor

用 Python 开发的电商平台。采用 Django+GraphQL API+React 构建,功能丰富支持移动端、订单、商品、用户管理等。[在线体验](https://demo.saleor.io/dashboard)

textdistance
Python第 72 期

textdistance

计算文本距离的常用算法库。包含计算文本相似度、多样性、编辑距离、压缩等多种算法,所有算法均采用 Python 实现,容易理解调用方便```python import textdistance textdistance.hamming.normalized_similarity('test', 'text')# 相似度为 0.75```

tiptop
Python第 72 期

tiptop

炫酷的命令行系统监控工具```安装:pip install tiptop运行:tiptop```

drf-yasg
Python第 71 期

drf-yasg

为 Django Rest Framework 接口自动生成 Swagger 接口文档的库

Python
Python第 71 期

Python

用 Python 实现所有算法。该项目是用 Python 语言实现各种算法的集合,主要用于教育和学习。包括搜索、排序、数据结构、机器学习、密码、神经网络等方面

暂无截图
Python第 71 期

python-mini-projects

一个简单的 Python 迷你脚本集合。虽然代码简单但其中不乏实用的 Python 脚本,比如图片添加水印、批量下载图片、发送电子邮件、定时截屏等

django-grappelli
Python第 70 期

django-grappelli

美化 Django 默认管理后台界面的库```# 安装pip install django-grappelli# 设置 settings.py 文件INSTALLED_APPS = ('grappelli','django.contrib.admin',)# 增加路径urlpatterns = [path('grappelli/', include('grappelli.urls')), # grappelli URLS path('admin/', admin.site.urls), # admin site]# 增加请求处理器TEMPLATES = [...'OPTIONS': {'context_processors': [...'django.template.context_processors.request',...]# 最后python manage.py collectstatic```

Hitomi-Downloader
Python第 70 期

Hitomi-Downloader

Python 写的桌面下载工具。界面简单使用方便,拥有下载限速、BT 种子、自动提取网页视频等功能,支持下载国内多个视频网站的内容

trzsz
Python第 70 期

trzsz

简单实用的文件传输工具。支持 tmux 和 iTerm2 一起使用,并且有显示上传/下载进度的进度条

暂无截图
Python第 69 期

orjson

更快更强的 Python JSON 库。支持比如日期、numpy 数组等丰富的数据类型,而且速度更快```python>>> import orjson, datetime, numpy>>> data = {"type": "job","created_at": datetime.datetime(1970, 1, 1),"status": "🆗","payload": numpy.array([[1, 2], [3, 4]]),}>>> orjson.dumps(data, option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY)b'{"type":"job","created_at":"1970-01-01T00:00:00+00:00","status":"\xf0\x9f\x86\x97","payload":[[1,2],[3,4]]}'>>> orjson.loads(_){'type': 'job', 'created_at': '1970-01-01T00:00:00+00:00', 'status': '🆗', 'payload': [[1, 2], [3, 4]]}```

rumps
Python第 69 期

rumps

简单的 macOS 状态栏 Python 库```python import rumps class AwesomeStatusBarApp(rumps.App):@rumps.clicked("Preferences")def prefs(self, _):rumps.alert("jk! no preferences available!")@rumps.clicked("Silly button")def onoff(self, sender):sender.state = not sender.state@rumps.clicked("Say hi")def sayhi(self, _):rumps.notification("Awesome title", "amazing subtitle", "hi!!1")if __name__ == "__main__":AwesomeStatusBarApp("Awesome App").run()```

tiler
Python第 69 期

tiler

将图片转化成各种较小图块拼接成的图像工具。马赛克风格的图片转化工具,支持自定义拼接图案和符号。工具实用方便、代码简单易懂,适合对图像感兴趣的小伙伴学习和上手

django-debug-toolbar
Python第 68 期

django-debug-toolbar

Django 的调试工具栏。可显示当前请求和响应有关的各种调试信息,包括耗时、SQL、配置、性能等信息```1. 安装:pip install django-debug-toolbar 2. TEMPLATES = [{"BACKEND": "django.template.backends.django.DjangoTemplates","APP_DIRS": True,# ...}]3. INSTALLED_APPS = [# ..."debug_toolbar","django.contrib.staticfiles",# ...]4. 增加 __debug__ URL import debug_toolbar from django.urls import include, path urlpatterns = [# ...path('__debug__/', include(debug_toolbar.urls)),]5. MIDDLEWARE = [# ..."debug_toolbar.middleware.DebugToolbarMiddleware",# ...]6. INTERNAL_IPS = [# ..."127.0.0.1",# ...]```

暂无截图
Python第 68 期

pottery

以 Python 的方式操作 Redis 的库。忘记那些 Redis 命令吧,只要你知道如何使用 Python 字典,那么你就会用这个库操作 Redis```python>>> from pottery import RedisList>>> tel = RedisDict({'jack': 4098, 'sape': 4139}, redis=redis, key='tel')>>> tel['guido'] = 4127>>> tel RedisDict{'jack': 4098, 'sape': 4139, 'guido': 4127}>>> tel['jack']4098>>> squares = RedisList([1, 4, 9, 16, 25], redis=redis, key='squares')>>> squares RedisList[1, 4, 9, 16, 25]>>> squares[0]1```

PyWebIO
Python第 68 期

PyWebIO

快速构建 Web 应用的 Python 工具。通过该项目你可在不写 HTML、CSS、JS 代码的前提下,仅用 Python 快速完成一个包含数据展示、表单的小型 Web 应用页面

webssh
Python第 68 期

webssh

简单的 SSH 连接服务器的 Python Web 应用。该项目后端采用 Tornado Web 框架和 Python SSH 库 paramiko,前端是 TypeScript 写的命令行前端组件 Xterm.js 实现。整个项目简单还具有实用价值,可作为 Python Web 的实战项目学习

zulip
Python第 68 期

zulip

完全开源的企业级即时通讯项目。后端采用 Python 语言实现性能足够强大,功能齐全相当于开源、免费的 Slack,拥有拖拽上传文件、代码高亮、Markdown 语法、应用整合、容易接入的 API 等功能,还支持 Web、PC、iOS 和 Android 主流平台,众多知名企业都在用,能够有效地提高团队沟通和办公效率。同时该项目对新手用户友好,如果你想加入一个不错的 Python 开源项目,推荐你花时间研究下它一定会有所收获

30-Days-Of-Python
Python第 67 期

30-Days-Of-Python

免费、零基础的 Python 教程。保姆级 Python 教程内容虽为英文,但问题不大请放心食用

暂无截图
Python第 67 期

python-pinyin

汉语转拼音的 Python 库。不知道有没有小伙伴和我一样,刚看到这库不知道能用来干啥。其实它可以用来丰富被搜索的中文内容,通过该项目可实现拼音搜索内容、容错同音错别字、中文排序等,从而提高搜索准确度和体验```python>>> from pypinyin import pinyin, lazy_pinyin, Style>>> pinyin('中心')[['zhōng'], ['xīn']]>>> pinyin('中心', heteronym=True) # 启用多音字模式[['zhōng', 'zhòng'], ['xīn']]>>> pinyin('中心', style=Style.TONE3, heteronym=True)[['zhong1', 'zhong4'], ['xin1']]```

暂无截图
Python第 67 期

q

用 SQL 方式查询 CSV 文件的命令行工具。支持 where、group_by、join 查询和中文等多种字符编码,还可以把查询结果转存到数据库。终于不用为产品临下班,扔来的 CSV 文件而加班啦```q "SELECT COUNT(*) FROM ./clicks_file.csv WHERE c3 > 32.3"ps -ef | q -H "SELECT UID,COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC"```

Tkinter-Designer
Python第 67 期

Tkinter-Designer

用拖动的方式创建漂亮的桌面软件。它的操作十分简单,首先在 Figma 网站通过拖拽的方式构建应用,然后把设计好的应用地址和 token 输入到 Tkinter-Designer 自动生成 Python 代码,最后就能得到界面简洁大方的桌面应用啦。不用代码做出基于 tkinter 的桌面应用

暂无截图
Python第 66 期

CPython-Internals

图文并茂的 Python 源码阅读笔记项目。阅读的是比较新的 CPython 3.8 版本,重点是项目一直在更新维护```c++static void take_gil(PyThreadState *tstate){/* 忽略 */while (_Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked)) {/* 只要 gil 是锁住的状态, 进入这个循环 */int timed_out = 0;unsigned long saved_switchnum;saved_switchnum = _PyRuntime.ceval.gil.switch_number;/* 释放 gil.mutex, 并在以下两种条件下唤醒1. 等待 INTERVAL 微秒(默认 5000)2. 还没有等待到 5000 微秒但是收到了 gil.cond 的信号*/COND_TIMED_WAIT(_PyRuntime.ceval.gil.cond, _PyRuntime.ceval.gil.mutex,INTERVAL, timed_out);/* 当前持有 gil.mutex 这把互斥锁 */if (timed_out &&_Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked) &&_PyRuntime.ceval.gil.switch_number == saved_switchnum) {/* 如果超过了等待时间, 并且这段等待时间里 gil 的持有者没有变更过, 则尝试让当前持有 gil 的线程进行释放gil把 gil_drop_request 值设为 1, 持有锁的线程看到这个值的时候, 会尝试放弃 gil */SET_GIL_DROP_REQUEST();}/* 继续回到 while 循环, 检查 gil 是否为锁住状态 */}/* 忽略 */}```

暂无截图
Python第 66 期

mypy

Python 静态类型检查库。既然 Python 是一门动态类型语言,为啥还要检查类型呢?有了静态类型检测则无需运行代码,就可以发现程序中潜在的错误。还可以加入到 `git hook` 中,实现在提交代码前自动检查。详情查看[这篇文章](https://mp.weixin.qq.com/s/K4RGr5NqMFAUKtB0KFPV5g)

Pokemon-Terminal
Python第 66 期

Pokemon-Terminal

适用于多种终端的口袋妖怪主题工具。支持 iTerm2、ConEmu、Terminology、Windows 的终端,已经收集了 719 个小精灵

moviepy
Python第 65 期

moviepy

用于处理视频的 Python 库,它支持视频剪辑、自定义效果、视频合成、格式转化、插入文字等功能。专于注视频但不局限于此,还支持处理音频和 GIF 图片。虽然现在视频剪辑的工具很丰富,但如果要批量处理视频,用 Python+moviepy 写个脚本应该可以一劳永逸,节省时间

pyinstrument
Python第 65 期

pyinstrument

简单易用的 Python 代码性能分析库,优化 Python 代码的工具。支持 Python 3.7+ 能够分析异步代码,仅需一条命令即可显示具体到函数的耗时,快速指出影响代码性能的地方,帮助提高代码性能让你的代码快人一步```# 命令模式Usage: pyinstrument [options] scriptfile [arg] ...# 代码片段模式from pyinstrument import Profiler profiler = Profiler()profiler.start()# 要分析的代码profiler.stop()profiler.print()# 还支持 flask 等 Web 框架```

ray
Python第 65 期

ray

基于 Python 的分布式计算框架,采用动态图计算模型。使用起来很方便可通过装饰器的方式,仅需修改极少的的代码,让原本运行在单机的 Python 代码轻松实现分布式计算。目前多用于机器学习方面```python import ray ray.init()@ray.remote def f(x):return x * x futures = [f.remote(i) for i in range(4)]print(ray.get(futures))```

termpair
Python第 65 期

termpair

浏览器远程+实时操作命令行的工具。让开发者安全实时的共享终端,特别适合服务器非桌面系统的环境。有了它下次再遇到问题,求助大佬远程协助就方便多了```# 安装pip install termpair# 起服务termpair serve# 生成远程控制终端的链接termpair share```

暂无截图
Python第 65 期

weiboSpider

Python 写的微博爬虫,命令行直接启动。支持获取微博用户、内容字段丰富。虽然爬虫的实战项目很多,但能一直更新的很少,因为只要数据源变动爬虫就要跟进迭代。这个项目更新稳定回复问题及时实属不易,希望大家在享受项目带来的便利同时也可以 Star 支持一下```# 安装$ git clone https://github.com/dataabc/weiboSpider.git$ cd weiboSpider$ pip install -r requirements.txt# 启动$ python3 -m weibo_spider```

bigdata_analyse
Python第 64 期

bigdata_analyse

大数据分析实战项目的集合。该项目包含了淘宝、租房、招聘等数据的分析实例,不仅有 Python、SQL、HQL 的实例代码,还附上了数据集下载地址。想学习大数据的同学们,万事俱备就差你来学了

JDMemberCloseAccount
Python第 64 期

JDMemberCloseAccount

用 Python 操作 selenium 的实战项目。该项目以全自动退出京东加入的店铺会员为例,介绍了 Python 自动化的知识和方案

OnlineJudge
Python第 64 期

OnlineJudge

青岛大学开源的在线评测系统(OJ),采用 Django+Vue.js 实现。功能如下:- 基于 Docker 的一键部署- 支持 ACM/OI 两种比赛模式、实时/非实时评判- 丰富的可视化图表,一图胜千言- 支持多种编程语言:C/C++、Java、Python2/3- 比赛用户 IP 限制 (CIDR ranges)

Pillow
Python第 64 期

Pillow

最流行的 Python 图像处理库。它的诞生是由于 PIL 的年久失修,现已于 2011 年停止维护,所以开源爱好者们就在 PIL 的基础上创建了 Pillow。该库支持丰富的图像格式和强大的图像处理功能,如果你要用 Python 处理图像,它绝对是不二之选```python# 安装:pip install pillow# 注意安装的版本,不同版本支持的 Python 版本也不同from PIL import Image# 打开 jpg 图像文件im = Image.open('hellogithub.jpg')# 转换成黑白图像grayscale = tatras.convert('L')# 展示图像grayscale.show()```

tqsdk-python
Python第 64 期

tqsdk-python

开源的 Python 量化交易框架。使用少量代码即可实现量化交易程序,还支持历史数据、实时数据、策略回测、实盘交易、图形化界面展示等功能。但免费版本仅提供全部的期货、商品/金融期权和上证50、沪深300 和中证500 的实时行情,付费版支持更多种类以及更加稳定的服务```python from tqsdk import TqApi, TqAuth, TqAccount, TargetPosTask api = TqApi(TqAccount("H海通期货", "4003242", "123456"), auth=TqAuth("信易账户", "账户密码")) # 创建 TqApi 实例, 指定交易账户q_1910 = api.get_quote("SHFE.rb1910") # 订阅近月合约行情t_1910 = TargetPosTask(api, "SHFE.rb1910") # 创建近月合约调仓工具q_2001 = api.get_quote("SHFE.rb2001") # 订阅远月合约行情t_2001 = TargetPosTask(api, "SHFE.rb2001") # 创建远月合约调仓工具while True:api.wait_update() # 等待数据更新spread = q_1910.last_price - q_2001.last_price # 计算近月合约-远月合约价差print("当前价差:", spread)if spread > 250:print("价差过高: 空近月,多远月")t_1910.set_target_volume(-1) # 要求把1910合约调整为空头1手t_2001.set_target_volume(1) # 要求把2001合约调整为多头1手elif spread

GitHubPoster
Python第 63 期

GitHubPoster

能够把多个平台上的数据,生成类似 GitHub 绿墙图像的工具。比如能够把发推的频率、扇贝单词打卡等情况生成类似 GitHub 绿墙图像,使用简单感兴趣的同学可以把玩一下

guietta
Python第 63 期

guietta

用于制作简单 GUI 程序的 Python 库。换一种简单的方式写 GUI(图形用户界面)程序```python from guietta import _, Gui, Quit gui = Gui([ "Enter numbers:", "__a__", "+", "__b__", ["Calculate"] ],[ "Result: -->", "result", _, _, _ ],[ _, _, _, _, Quit ])with gui.Calculate:gui.result = float(gui.a) + float(gui.b)gui.run()```

pygame
Python第 63 期

pygame

用来开发游戏的 Python 库。Pygame 已经持续更新多年,网上的教程和资料十分充足,虽然在游戏开发领域 Python 只是个弟弟,但如果只是用这个库开发个 2D 小游戏还是很顺手的。推荐给想用 Python 写个小游戏的朋友

BaoTa
Python第 62 期

BaoTa

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

暂无截图
Python第 62 期

learn-python

一份以代码和注释方式讲解 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: (greater than), == (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```

magic-wormhole
Python第 62 期

magic-wormhole

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

recommenders
Python第 62 期

recommenders

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

apkleaks
Python第 61 期

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```

暂无截图
Python第 61 期

tomato-clock

Python 写的命令行番茄工作法定时器。代码仅有 100 多行,不依赖其它第三方库```🍅 tomato 25 minutes. Ctrl+C to exit🍅🍅---------------------------------------------- [8%] 23:4 ⏰```

vardbg
Python第 61 期

vardbg

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

Airtest
Python第 60 期

Airtest

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

ArchiveBox
Python第 60 期

ArchiveBox

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

lux
Python第 60 期

lux

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

qutebrowser
Python第 60 期

qutebrowser

基于 PyQt5 编写的 Vim 操作方式的浏览器。支持 Linux,Windows 和 macOS 操作系统,可以先[安装](https://github.com/qutebrowser/qutebrowser/releases)体验下。然后再看看源码学习如何用 Python 写浏览器

alive-progress
Python第 59 期

alive-progress

新!Python 炫酷进度条项目。支持 Python2.7-3.8 示例代码:```python# 安装: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```

blind_watermark
Python第 59 期

blind_watermark

给图片加盲水印的 Python 库。盲水印就是图片有水印但人眼看不出来,需要通过程序才能提取水印,相当于隐形“盖章”,可以用在数据泄露溯源、版权保护等场景。该库出自阿里巴巴安全团队,强大之处:- 解析水印图时无需原图- 水印图剪裁、旋转都不会破坏图中的盲水印- 支持密码加密```python from blind_watermark import WaterMark bwm_obj = WaterMark(password_wm=1, password_img=1)# 原图bwm_obj.read_img('pic/原图.jpg')# 水印图bwm_obj.read_wm('pic/水印.png')# 打水印后的图bwm_obj.embed('output/结果.png')# 注意需要设定水印的长宽 wm_shape bwm_objextract(filename='output/结果.png', wm_shape=(120, 120), out_wm_name='output/解出的水印.png', )```

PyG2Plot
Python第 59 期

PyG2Plot

基于 G2Plot 封装的 Python3 可视化库。G2Plot 是蚂蚁集团开源的一个基于图表分类学的可视分析图表库,内置 25+ 常见图表类型。该库是 Python 对 G2Plot 的封装,体验良好,开箱即用```python 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()```

暂无截图
Python第 59 期

requests-html

好用的 Python 解析 HTML 库。写爬虫的小伙伴都感受过解析 HTML 的痛苦,常用工具 BeautifulSoup、lxml、Scrapy 的 selector 等。今天你有了新的选择 requests-html,支持 XPath、CSS 选择器、动态页面、过滤指定内容等。上手特别简单和迅速,我的爬虫项目 [Hydra](https://github.com/HelloGitHub-Team/Hydra) 中就用了它,解析 HTML 变得轻松了许多。下面是我觉得好用的函数示例:```python# 找出元素下的所有链接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()```

暂无截图
Python第 59 期

vcrpy

把 HTTP 的请求拦截下来,返回本地准备好的数据的库。就像“插卡”一样,使用装饰器方式修饰的函数会被拦截下来,直接返回指定本地路径的文件中的数据,从而提高测试执行速度和确定性```python@vcr.use_cassette('fixtures/vcr_cassettes/synopsis.yaml')def test_iana():response = urllib2.urlopen('http://www.iana.org/domains/reserved').read()assert 'Example domains' in response```

lastversion
Python第 58 期

lastversion

帮你找到库或者软件最新版本的 Python 工具。它可以避开不同项目作者使用的不同风格的版本号,获取一个项目的最新版本号,下载或安装它们。本项目可用于 build system,比如自动更新脚本。支持从这些网站搜索:GitHub、GitLab、PyPI 等,确保版本最新和稳定```# 获取最新的 Linux 版本号和最新的 Wordpress 版本号lastversion linux# 作者的版本标签:v5.10# 本项目提供的版本标签:5.10 lastversion wordpress# 作者的版本标签:5.6# 本项目提供的版本标签:5.6```

streamlit
Python第 58 期

streamlit

能够快速地把数据制作成可视化、交互页面的 Python 框架。分分钟让你的数据变成图表,并且该项目提供免费的共享服务平台帮你的项目上线,方便数据的共享和讨论

xonsh
Python第 58 期

xonsh

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

Zappa
Python第 58 期

Zappa

Python 无服务框架(serverless)。用这个项目开发完功能,只需几个命令就能打包上传到云服务平台,瞬间完成服务发布。不仅程序员喜欢它,老板也喜欢因为能够降低服务器成本省钱。

pgcli
Python第 57 期

pgcli

支持语法高亮和自动补全的 Postgres 数据库客户端命令行工具。它安装简单上手快速,如果你用过 Postgres 数据库自带的命令行工具,就一定能感受到 pgcli 的迷人之处

pythonguis-examples
Python第 57 期

pythonguis-examples

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

flask-state
Python第 56 期

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')});```

gopup
Python第 56 期

gopup

采集各种权威公开数据的 Python 库。示例代码:```python# 安装:pip isntall gopup import gopup as gp covid_baidu_df = gp.covid_baidu(indicator="热搜谣言粉碎")print(covid_baidu_df)```

暂无截图
Python第 56 期

python-cheatsheet

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

running_page
Python第 56 期

running_page

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

asciinema
Python第 55 期

asciinema

终端记录工具。忘记录屏软件吧,纯文本的录制终端操作的工具。安装简单、使用方便,且生成的记录文件极小,但需要配合 JS 文件播放

playwright-python
Python第 55 期

playwright-python

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

practical-python
Python第 55 期

practical-python

大佬 David Beazley 开源的 Python 免费入门级教程。他是《Python Cookbook 第三版》、《Python 参考手册》的作者,教程经过实际的教学实践、包含课后练习题。[在线学习](https://dabeaz-course.github.io/practical-python/Notes/Contents.html),教程目录如下:

redis-memory-analyzer
Python第 55 期

redis-memory-analyzer

Redis 实时内存分析工具。我比较好奇它是怎么实时获取 redis 中 key 的情况和信息,就看了下源码 `scanner.py` 文件。发现是采用 `scan_iter` 方法,控制扫描 key 返回的量。然后通过 `yield` 减少内存占用量,最后再加上 `register_script` 方法调用 Lua 脚本或` pipeline` 方法提高获取 key 信息的效率。分析后感觉这个工具可适用在数据量较大的情况,实时性要求在秒或者分钟级的场景下

wagtail
Python第 55 期

wagtail

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

暂无截图
Python第 54 期

learn-python3

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

livebox
Python第 54 期

livebox

一个网络直播聚合平台,能够观看视频直播、高清电视和收听广播电台等。目前支持 30+ 个视频直播、50+ 个高清电视频道和 70+ 个广播电台,比较全面的 Web 项目,用到的技术栈:- 前端/客户端:Qt、Vue、Flutter 等- 后端:MySQL、Redis、Kafka/RabbitMQ、Elasticsearch 等

暂无截图
Python第 54 期

readthedocs.org

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

taichi
Python第 54 期

taichi

一个高性能图形学编程框架。它可以将你编写的 Python 代码转换成高效的汇编代码,在多 CPU 和 GPU 上运行,相当于是在用 Python 的语法写着色器。Taichi 解决了图形学配环境难,代码移植性差等问题,只需 `pip install taichi` 即可安装,编写的程序在 Windows、Linux、OSX 上均可运行,降低了新手学习图形学的门槛。示例代码:```python import taichi as ti ti.init(arch=ti.gpu) # 指定编译后的函数在 GPU 上执行n = 320 pixels = ti.field(dtype=float, shape=(n * 2, n)) # 提前声明数组存储类型,大小@ti.func # 该函数将是被调用的过程函数def complex_sqr(z):return ti.Vector([z[0]**2 - z[1]**2, z[1] * z[0] * 2])@ti.kernel # 该函数将被 Taichi 编译def paint(t: float):for i, j in pixels: # 最外层循环会自动并行化c = ti.Vector([-0.8, ti.cos(t) * 0.2])z = ti.Vector([i / n - 1, j / n - 0.5]) * 2 iterations = 0 while z.norm()

altair
Python第 53 期

altair

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

handcalcs
Python第 53 期

handcalcs

通过简单的 Python 代码,生成复杂公式的工具。还记得写论文推算算法的时候,被一行行公式支配的恐惧吗?该库可以将 Python 写的公式,展示为 LaTeX 格式,效果如下:

QuickCut
Python第 53 期

QuickCut

一款轻量、好用的开源视频处理工具。它是基于 PyQt5 开发的桌面工具,用于满足非专业用户的视频处理需求:压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕、自动剪辑等

ar-cutpaste
Python第 52 期

ar-cutpaste

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

nginx-ui
Python第 52 期

nginx-ui

在线修改 Nginx 配置的服务。总的来说还是能减少修改配置出错的概率,而且不用面对漆黑枯燥的命令行了

暂无截图
Python第 52 期

python-dotenv

帮你更好的管理 Python 项目中敏感配置信息的开源三方库。在项目中会有一些数据库、账户、KEY 等敏感信息,这些信息最好不要写在源代码中。为了降低泄漏风险,一般会通过环境变量来设置,这个库可以很方便帮你在 Python 项目中管理这些信息。示例代码:```python# 安装:pip install -U python-dotenv# 目录结构:.├── .env└── settings.py# 示例代码# settings.py import os from dotenv import load_dotenv load_dotenv()SECRET_KEY = os.getenv("EMAIL")DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")```

free-python-games
Python第 51 期

free-python-games

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

oxfs
Python第 51 期

oxfs

一个基于 sftp 协议的 fuse 网络文件系统,功能上类似于 sshfs。特性:- 引入了异步并发读远端文件机制,提高了文件首次读速度。- 缓存持久化到本地磁盘,下次挂载时访问更加快速。- 异步任务负责同步文件,避免低速的网络读写阻塞上层应用。

poetry
Python第 51 期

poetry

Python 虚拟环境、依赖管理工具。依赖管理工具有很多,我相上了它有三点:通过单文件 pyproject.toml 便可轻松的区别安装、管理开发和正式环境、有版本锁定可方便回滚、输出界面简单清爽。当然它还是个“新生儿”,尝鲜的风险还是有的,选择须谨慎

py2sec
Python第 51 期

py2sec

一款轻量级跨平台 Python “加密”、加速的脚本工具。原理是基于 Cython 将 .py 编译成 run-time libraries 文件:.so(Linux && Mac)或 .pyd(Win),一定程度上实现了“加密”保护源代码的功能。参数详解如下:```-v, --version 显示 py2sec 版本-h, --help 显示帮助菜单-p, --pyth Python 的版本,默认为你的 Python 命令绑定的 Python 版本-d, --directory Python 项目路径(如果使用 -d 参数,将编译整个 Python 项目)-f, --file Python文件(如果使用 -f,将编译单个 Python 文件)-m, --maintain 标记你不想编译的文件或文件夹路径-x --nthread 编译启用的线程数-q --quiet 静默模式,默认 False-r --release Release 模式,清除所有中间文件,只保留加密结果文件,默认 False python py2sec.py -f test.py python py2sec.py -f example/test1.py -r python py2sec.py -d example/ -m test1.py,bbb/```

rich
Python第 51 期

rich

一个让你的终端输出变得“花里胡哨”的三方库。我的一位前辈告诉我,不要整那些花里胡哨的主题和样式,这是在自寻烦恼。可是臣妾做不到啊,这么好看的终端输出,让我的心情都愉悦起来了。瞧那性感的语法高亮、整齐的表格、舒服的颜色、进度条等,一切都是值得的

fastapi
Python第 50 期

fastapi

基于 Python 3.6+ 的高性能 Web 框架。“人如其名”用 FastAPI 写接口那叫一个快、调试方便,Python 在进步而它基于这些进步,让 Web 开发变得更快、更强。示例代码:```python from fastapi import FastAPI app = FastAPI()@app.get("/")async def read_root():return {"Hello": "World"}@app.get("/items/{item_id}")async def read_item(item_id: int, q: str = None):return {"item_id": item_id, "q": q}# 启动命令:uvicorn main:app --reload```

geek_crawler
Python第 50 期

geek_crawler

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

MrDoc
Python第 50 期

MrDoc

一个基于 Python 开发的在线文档系统。支持 Markdown 语法、文集分类、科学公式、流程图、思维导图等内容。清爽的阅读界面,还可以把内容打包导出为 Markdown 文件、EPUB 文件、PDF 文件。适合作为个人和小型团队的私有文档服务

PyBoy
Python第 49 期

PyBoy

Python 写的 GameBoy 模拟器。不仅可以用来怀念童年,还能用这个库写“外挂”,之前虐你千百遍的游戏。现在用 Python 找回场子,放学别走,学校门口见!示例代码:```python from pyboy import PyBoy pyboy = PyBoy('ROMs/gamerom.gb')while not pyboy.tick():pass```

scalene
Python第 49 期

scalene

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

暂无截图
Python第 48 期

httpx

使用简单方便,轻松实现异步请求的 HTTP 客户端(Python 3.8+)。示例代码:```python>>> import httpx# 同步>>> r = httpx.get('https://www.example.org/')>>> r>>> r.status_code# 异步>>> async with httpx.AsyncClient() as client:>>> r = await client.get('https://www.example.org/')>>> r```

iredis
Python第 48 期

iredis

Python 语言写的支持自动补全、语法高亮、命令提示等的 Redis 命令行客户端。超好用,真是相见很晚啊

python-small-examples
Python第 48 期

python-small-examples

Python 有趣、实用的代码示例集合。包含: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')```

rssant
Python第 48 期

rssant

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

activitywatch
Python第 47 期

activitywatch

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

暂无截图
Python第 47 期

akshare

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

repoll
Python第 47 期

repoll

基于 Django 开发的 redis 集群管理、监控工具。功能包括:标准化申请流程、管理配置、监控接口等,减轻了运维人员的痛苦

KeymouseGo
Python第 46 期

KeymouseGo

Python 实现的精简绿色版按键精灵。记录用户的鼠标、键盘操作,自动执行之前记录的操作,可设定执行的次数。在进行某些简单、单调重复的操作时,使用该软件可以十分省事儿。只需要录制一遍,剩下的交给 KeymouseGo 来做就可以了

sentry
Python第 46 期

sentry

一款免费开源的 Python 实时异常监控平台。采用 C/S 模式,服务器端通过 Python 实现,同时提供 web 管理页面,支持从任何语言、任何应用程序发送事件。一个成熟的服务必要的一环就是异常告警,Sentry 可以帮你及时知道服务非预期的异常

暂无截图
Python第 46 期

vaex

类似 Pandas 的 Python 数据处理库,在处理大型数据集的时候表现极大的优于 Pandas。Vaex 通过懒加载、延迟计算和零内存复制策略,极大的降低了内存的使用率、提高了计算的效率。从而能够每秒处理 10 亿行的数据,并且支持以直方图、密度图等形式展示数据。有大数据集处理需求的小伙伴赶快试试吧

word_cloud
Python第 46 期

word_cloud

Python 的词云生成工具。示例代码:```python# 加载内容text = open(path.join(d, 'constitution.txt')).read()# 生成词云图片wordcloud = WordCloud().generate(text)# 展示生成的图片image = wordcloud.to_image()image.show()```

ZeroNet
Python第 46 期

ZeroNet

一个使用 Bitcoin 加密和 BitTorrent 网络的去中心化网络。将传统巨头垄断的互联网变得平民化,不需要租用服务器不需要公网 IP,每个人都可以轻松创建分布式博客、分布式论坛、分布式微博、分布式视频网站、分布式直播网站等等

暂无截图
Python第 45 期

memory_profiler

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```

mitmproxy
Python第 45 期

mitmproxy

基于 Python 语言开发的抓包工具。支持命令行、Web 平台的形式展示抓包结果,还能通过 Python 引用库来拦截、控制响应和请求。下图展示为命令行使用界面(类 vim 操作)

PySimpleGUI
Python第 45 期

PySimpleGUI

Python GUI 编程库,它是将 tkinter、Qt、Remi、WxPython 封装成更人性化的接口。示例代码和效果如下:```python import PySimpleGUI as sg sg.theme('DarkAmber') # 设置主题颜色# 界面内包含的东西layout = [ [sg.Text('Some text on Row 1')],[sg.Text('Enter something on Row 2'), sg.InputText()],[sg.Button('Ok'), sg.Button('Cancel')] ]# 创建窗口window = sg.Window('Window Title', layout)# 监听事件while True:event, values = window.read()if event in (None, 'Cancel'): # 用户点击取消按钮事件break print('You entered ', values[0])window.close()```

PythonPlantsVsZombies
Python第 45 期

PythonPlantsVsZombies

Python 语言编写的植物大战僵尸。学习如何使用 Python 编写小游戏的极佳例子,运行步骤:```1. 需要 Python 3 2. 安装依赖库:pip install pygame 3. python main.py```

Gooey
Python第 44 期

Gooey

一个把 Python 命令行工具转化成 GUI 桌面工具的库。就我个人还是喜欢命令行的形式😅

KubeOperator
Python第 44 期

KubeOperator

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

opendevops
Python第 44 期

opendevops

一款基于 tornado 的开源自动化运维云管理平台。支持:ITSM、权限系统、Web Terminnal 登陆日志审计、录像回放、监控报警系统、DNS 管理、配置中心等

pyflame
Python第 44 期

pyflame

Uber 开源的 Python 性能分析工具。可以在不修改代码的情况下分析 Python 程序的性能,同时生成火焰图

RPA-Python
Python第 43 期

RPA-Python

一个 Python 自动化操作的库。比如:自动打开网页并截图,示例代码:```python t.init()t.url('https://www.google.com')t.type('q', 'decentralization[enter]')t.snap('page', 'results.png')t.close()```

bokeh
Python第 42 期

bokeh

一个交互式的数据可视化 Python 库,专注于在 Web 浏览器中实现美观、直接的数据可视化功能。使用它可以让你快速和轻松地创建交互式图表、仪表板和数据可视化程序。流式数据集的可视化效果如下图:

GeneralNewsExtractor
Python第 42 期

GeneralNewsExtractor

基于《基于文本及符号密度的网页正文提取方法》论文用 Python 实现的正文抽取器,可以用来提取 HTML 中正文的内容、作者、标题。之前我看到这篇论文也想实现该抽取工具,但是我因为懒癌晚期躺下了,感谢[kingname](https://github.com/kingname) ‘带趟’ ✌️

healthchecks
Python第 42 期

healthchecks

基于 Python3 和 Django2 的 Cron 定时任务监控工具,同时支持多种定时任务失败时的告警方式

bullet
Python第 41 期

bullet

一个支持终端输入和菜单选择的 Python 库。可以让使用者在终端上用方向键移动、单选、复选、密码输入等,而且支持定制化格式和颜色。看下面的效果图你就知道它是干什么

DaPy
Python第 41 期

DaPy

一个易用的数据分析 Python 库。通过提供合理的数据结构和丰富的机器学习模型,它能帮你快速地实现数据分析思路。简单来说,DaPy 能帮助你完成数据挖掘任务中的每一步,导入导出数据、预处理数据、特征工程、模型训练和模型评估等

暂无截图
Python第 41 期

PyUnit

帮助学习 Python 的代码集合包。包含 20 多个简单易用的常用方法和数学函数,大多数方法在 100 行左右,而且每一个类的使用都有对应的测试用例。非常方便初学者学习,也可以帮助有经验的开发者快速实现一些功能。示例代码:```python# 这是一个阳历转化农历的程序from jtyoui.plunar import SC if __name__ == '__main__':lun = SC(year=2018, month=1, day=2) #阳历转农历print(lun.y) # 农历的年,中文字符 二零一九print(lun.year) # 农历的年,阿拉伯数字 2019...print(lun) # 二零一九年 七月 十四 星期四 无```

cufflinks
Python第 40 期

cufflinks

基于 plotly 和 pandas 的绘图库。Pandas 是处理数据的常用库,cufflinks 可以让 pandas 处理后的数据更直观的展示。通过该库你可以用极少的代码,实现绚丽和多样的数据可视化图形

暂无截图
Python第 40 期

one-python-craftsman

如何编写优秀的 Python 代码?优秀的代码就是由无数优秀的细节组成的。这个项目就是详细讲解 Python 那些细节,比如何时使用异常、怎么给变量起名、怎么编写条件分支等等,看似简单的可能也是最难的地方。本项目作者是资深的 Python 开发,内容贴近实际工作和业务场景,相信认真学习完本项目,你的编码能力一定会得到很大提升,帮你在 Python 的开发道路上走的更高、更远

暂无截图
Python第 39 期

arrow

还在为处理时间、时区、转化、夏令时等问题而头疼吗?这个 Python 的第三方时间库。提供了更便捷的方式来创建、操作和格式化时间和日期,用更少的代码来处理时间和日期。示例代码:```>>> import arrow>>> utc = arrow.utcnow()>>> utc>>> utc = utc.replace(hours=-1)>>> utc>>> local = utc.to('US/Pacific')>>> local>>> arrow.get('2013-05-11T21:23:58.970460+00:00')>>> local.timestamp 1368303838```

暂无截图
Python第 39 期

GithubMonitor

由于很多猪队友的存在,公司敏感信息通过 GitHub 泄露出去是很常见的。这个项目主要根据关键字与 hosts 生成的关键词,利用 GitHub 提供的 API 监控 Git 泄漏,并在检测到信息泄露的时候发送邮件通知

manim
Python第 39 期

manim

一个生成数学教学视频的动画引擎。它用编程的方式创建精美的数学动画,让数学更加易懂。效果如3Blue1Brown 的视频中所展示的那样,效果炫酷。但要学会和用好这个工具需要花些精力

暂无截图
Python第 39 期

psutil

一个跨平台库的进程和系统资源监控、管理库。用于查看有关正在运行的进程和系统利用率,如 CPU、内存、磁盘、网络等信息。 实现了 UNIX 命令行工具提供的许多功能,例如:ps、top、lsof、netstat、ifconfig 等,支持 Linux、Windows、macOS 等系统。学会了这个库,就可以通过 Python 脚本做更多有趣的事情了。查看内存的代码:```>>> psutil.virtual_memory()svmem(total=10367352832, available=6472179712, percent=37.6, used=8186245120, free=2181107712, active=4748992512, inactive=2758115328, buffers=790724608, cached=3500347392, shared=787554304)>>> psutil.swap_memory()sswap(total=2097147904, used=296128512, free=1801019392, percent=14.1, sin=304193536, sout=677842944)```

暂无截图
Python第 39 期

you-get

一个 Python 写的视频下载工具,下载工具千万个但我仅仅推荐了这个工具。是因为正常情况下载不了视频的网站,用它你就可以方便地下载下来。剩下的要自己去看介绍,不能再多说了🙊```(env) ➜ ~ you-get 'https://v.ifeng.com/c/7msWmwppMPC'Site: ifeng.com Title: 完整版第五期:陈晓卿 中国有俩行当门槛极低——美食圈和摄影圈Type: MPEG-4 video (video/mp4)Size: 0.01 MiB (8578 Bytes)Downloading 完整版第五期:陈晓卿 中国有俩行当门槛极低——美食圈和摄影圈.mp4 100% ( 0.0/ 0.0MB) ├████████████████████┤[1/1] 71 kB/s```

city-vein
Python第 38 期

city-vein

用公交路线数据,还原城市结构。通过数据可视化手段,还原了 30 多个城市的城市结构。该项目中有数据获取和处理的脚本,而且该项目充分体现了数据可视化带来的便利和效果,易于激发学习编程的热情。[在线浏览](https://96486d9b.github.io/city-vein/)

暂无截图
Python第 38 期

PySnooper

Python 的第三方调试库。让你通过装饰器方法,方便的知道每一行程序运行后的结果,而不需要再手动增加 `print` 展示过程数据、调试程序。示例代码:```python import pysnooper@pysnooper.snoop()def number_to_bits(number):if number:bits = []while number:number, remainder = divmod(number, 2)bits.insert(0, remainder)return bits else:return [0]number_to_bits(6)# 输出如下Starting var:.. number = 6 15:29:11.327032 call 4 def number_to_bits(number):15:29:11.327032 line 5 if number:15:29:11.327032 line 6 bits = []New var:....... bits = []15:29:11.327032 line 7 while number:15:29:11.327032 line 8 number, remainder = divmod(number, 2)New var:....... remainder = 0 Modified var:.. number = 3....```

暂无截图
Python第 38 期

Python-100-Days

《Python 100 天从新手到大师》—— Python 的入门学习资料,学习曲线低。非专业人士也能上手学习,适合新手入门

暂无截图
Python第 38 期

Zvm

一款用 Python 实现的简易 JVM。实现功能如下:class 文件解析、类加载、运行时数据区、指令解释器、基本指令集、简易 GC、简易线程、简易 JDK 库,可以运行基本的 Java class 文件。代码量少,模块清晰,适合用来学习 JVM 的基本结构和实现

ffmpeg-python
Python第 37 期

ffmpeg-python

FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。这个是其 Python 的库,可以用该库操作、处理视频和音频。示例代码:```python# 水平翻转视频import ffmpeg stream = ffmpeg.input('input.mp4')stream = ffmpeg.hflip(stream)stream = ffmpeg.output(stream, 'output.mp4')ffmpeg.run(stream)```

暂无截图
Python第 37 期

pyright

微软出品的 Python 静态类型检查工具。执行速度快,适合大型 Python 项目,引用一句话:动态语言一时爽,重构火葬场

pyxel
Python第 37 期

pyxel

基于 Python 编程程语言实现的复古游戏引擎。示例代码:```python# 代码中导入 Pyxel 模块后import pyxel# 首先使用 init 函数指定窗口大小pyxel.init(160, 120)def update():if pyxel.btnp(pyxel.KEY_Q):pyxel.quit()def draw():pyxel.cls(0)pyxel.rect(10, 10, 20, 20, 11)# 最后然后使用 run 函数启动 Pyxel 应用程序pyxel.run(update, draw)```

暂无截图
Python第 36 期

awesome-python-login-model

该项目收集了各大网站登陆方式和部分网站的爬虫程序。登陆方式实现包含 selenium 登录、通过抓包直接模拟登录等。有助于新手研究、编写爬虫

dash
Python第 36 期

dash

一款只用几百行 Python 代码就可以轻易实现数据分析可视化的利器,是目前 Python 社区数据可视化主要的工具之一。具有:使用简单、易于扩展、开发团队活跃等特点

ds-cheatsheets
Python第 36 期

ds-cheatsheets

Python 在数据科学方面使用库的速查表,包含了 Pandas、Jupyter、SQL、Dask 等。虽然都是些基本的 API 调用,但是用来备忘和速查足以

gita
Python第 36 期

gita

基于 Python 开发的管理 git 工具,使用后可在任何目录下代理执行 git 指令。同时支持同时显示多个 repo 的状态信息、本地分支与远程分支的关系等

pylane
Python第 36 期

pylane

一个基于 gdb 的 Python 进程注入和调试工具。通过 gdb trace Python 进程,然后在该进程的 Python vm 中动态地注入一段 Python 代码, 从而对一个运行中的 Python 进程执行一段任意的逻辑。更多 Python 调试经验,可阅读这篇[文章](https://mp.weixin.qq.com/s/Mlhrp2E390EMD0ZfSaNFKw)

scrapydweb
Python第 36 期

scrapydweb

Scrapy 爬虫管理平台,支持:Scrapyd 集群管理、日志可视化、定时任务、邮件通知、移动端 UI

ruia
Python第 35 期

ruia

基于 asyncio 和 aiohttp 的 Python3 异步爬虫框架。它具有容易上手、非阻塞、扩展性强等特点,实例代码:```python from ruia import TextField, Item, Spider class HackerNewsItem(Item):target_item = TextField(css_select='tr.athing')title = TextField(css_select='a.storylink')class HackerNewsSpider(Spider):start_urls = ['https://news.ycombinator.com/news?p=1']async def parse(self, response):async for item in HackerNewsItem.get_items(html=response.html):yield item if __name__ == '__main__':HackerNewsSpider.start()```

spug
Python第 35 期

spug

使用 Python+Vue 实现的开源运维平台,前后端分离方便二次开发。该项目基于 Docker 镜像发布部署,方便安装和升级。支持运维常见功能:主机管理、任务计划管理、发布部署、监控告警等

暂无截图
Python第 34 期

click

Python 的第三方库,用于快速创建命令行。支持装饰器方式调用、多种参数类型、自动生成帮助信息等。示例代码如下:```python import click@click.command()@click.option("--count", default=1, help="Number of greetings.")@click.option("--name", prompt="Your name",help="The person to greet.")def hello(count, name):"""Simple program that greets NAME for a total of COUNT times."""for _ in range(count):click.echo("Hello, %s!" % name)if __name__ == '__main__':hello()# 下面为运行效果$ python hello.py --count=3 Your name: Click Hello, Click!Hello, Click!Hello, Click!```

PSpider
Python第 34 期

PSpider

代码量极少,功能却很完备的 Python 爬虫框架。特点:- 功能完备:包含抓取、解析、存储等- 代码量少:方便阅读源码、动手修改、二次开发- 等等

暂无截图
Python第 34 期

ranger

以类似 VIM 操作,方便、快捷地管理文件的工具

sherlock
Python第 34 期

sherlock

(英文)在主流社交网站,例如:GitHub、Facebook 等网站上查找指定的用户名是否存在。你想取一个独一无二的名字吗?快试试吧

暂无截图
Python第 33 期

lsbasi

用 Python 写一个简单的解释器系列教程

mkdocs
Python第 33 期

mkdocs

用 Python 开发的快速、简单的静态网站生成器,主要是为了构建项目的文档。文档源是 markdown 文件,用法和 Hexo 差不多,可通过一个 YAML 文件进行配置

himawaripy
Python第 32 期

himawaripy

一个 Python3 脚本,它会定时(需设置定时任务)抓取由日本 Himawari 8 气象卫星拍摄的接近实时的地球照片,并将它设置成你的桌面背景

awslogs
Python第 31 期

awslogs

一个简单的命令行工具,用于在本地查询 Amazon CloudWatch 日志,强大的支持多实例日志汇总查看。简单的查看命令:`awslogs get /var/logs/syslog ALL -s1d`

暂无截图
Python第 31 期

CUP

CUP 基础库是百度开源的 Python 语言基础库,致力将 DEV 从涉及底层操作、Util 操作类解放出来,使其更关注构建 service 上层业务逻辑。目前已涵盖了构建一个服务的各个方面,大家可以从基础库的代码结构、wiki、doc 中进行简单了解。```cup|-- cache.py module 缓存相关模块 ( Memory cache related module )|-- decorators.py module python 修饰符,比如 @Singleton 单例模式 (Decorators of python)|-- err.py module 异常 exception 类, Exception classes for CUP|-- __init__.py module 默认__init__.py, Default __init__.py|-- log.py module 打印日志类,CUP 的打印日志比较简洁、规范,设置统一、简单(cup logging module)|-- mail.py module 发送邮件 ( CUP Email module (send emails))|-- net package 网络相关操作( Network operations, such as net handler parameter tuning )|-- oper.py module 一些混杂操作(Mixin operations)|-- platforms.py module 跨平台、平台相关操作函数(Cross-platform operations)|-- res package 资源获取、实时用量统计等,所有在 /prco 可获得的系统资源、进程、设备等信息 ( Resource usage queries (in /proc)、Prcoess query、etc )|-- shell package 命令 Shell 操作 pakcage ( Shell Operations、cross-hosts execution )|-- services package 构建服务支持的类(比如心跳、线程池 based 执行器等等) Heartbeat、Threadpool based executors、file service、etc|-- thirdp package 第三方依赖纯 Py 模块( Third-party modules:pexpect、httplib2 )|-- timeplus.py module 时间相关的模块(Time related module)|-- unittest.py module 单元测试支持模块( Unittest、assert、noseClass )|-- util package 线程池、可打断线程、语义丰富的配置文件支持( ThreadPool、Interruptable-Thread、Rich configuration、etc )|-- version.py module 内部版本文件,CUP Version```

暂无截图
Python第 31 期

supervisor

Python 开发的一个 C/S 服务,是 Linux/Unix 系统下的一个进程管理工具,不支持 Windows 系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用 Supervisor 管理的进程,当一个进程意外被杀死,supervisort 监听到进程死后,会自动将它重新启动,很方便的做到进程自动恢复的功能,提高系统、服务的稳定性,多用于生产环境

暂无截图
Python第 30 期

cx-extractor-python

这是一个对网页正文进行抽取的工具。 [cx-extractor](https://github.com/chrislinan/cx-extractor/blob/master/%E5%9F%BA%E4%BA%8E%E8%A1%8C%E5%9D%97%E5%88%86%E5%B8%83%E5%87%BD%E6%95%B0%E7%9A%84%E9%80%9A%E7%94%A8%E7%BD%91%E9%A1%B5%E6%AD%A3%E6%96%87%E6%8A%BD%E5%8F%96%E7%AE%97%E6%B3%95.pdf) 算法的 python 版本,改进了原有算法,使其支持中英文,对新闻类网页正文抽取效果较好。示例代码:```python from crawler.cx_extractor_Python import cx_extractor_Python cx = cx_extractor_Python()test_html = cx.getHtml('http://news.163.com/16/0101/10/BC84MRHS00014AED.html')content = cx.filter_tags(test_html)s = cx.getText(content)print(s)```

termtosvg
Python第 30 期

termtosvg

Python 写的终端记录器。通过命令 `termtosvg` 运行该工具,然后在终端执行你要展示的命令,最终输入 `exit` 命令结束录制,本地会生成一份 SVG 动画,可用于分享、展示终端操作。效果如下:

FeelUOwn
Python第 29 期

FeelUOwn

一个符合 Unix 哲学的跨平台的音乐播放器,主要面向 Linux/macOS 用户。特性:- 安装简单,新手友好- 默认提供国内各音乐平台插件(网易云、虾米、QQ)- 较强的可扩展性可以满足大家折腾的欲望- 核心模块有较好文档和测试覆盖

hue
Python第 29 期

hue

开源的 Apache Hadoop UI 系统。通过使用 Hue 我们可以在浏览器端的 Web 控制台上与 Hadoop 集群进行交互来分析处理数据。核心功能:- 数据可视化- SQL 编辑器,支持 Hive、Impala、MySQL等- 可进行 workflow 的编辑、查看

TGmeetup
Python第 29 期

TGmeetup

搜集、整理、展示、报名技术类线下聚会的命令行工具,让使用者可以更加方便、及时的获取技术类活动资讯

tinydb
Python第 29 期

tinydb

TinyDB 是使用纯 Python 编写的 NoSQL 数据库,使用 json 文件存储数据。它区别于 SQLite 的关系性数据库。同样的小、不需要依赖外部服务器。适用于桌面程序、客户端,不适用于 Web 应用、高性能的数据查询。友好的 API,示例代码:```python>>> from tinydb import TinyDB, Query>>> db = TinyDB('path/to/db.json')>>> User = Query()>>> db.insert({'name': 'John', 'age': 22})>>> db.search(User.name == 'John')[{'name': 'John', 'age': 22}]```

scylla
Python第 28 期

scylla

一款高质量的免费代理 IP 池工具,仅支持 Python 3.6。[中文文档](https://scylla.wildcat.io/zh/latest/),特性如下:- 自动化的代理 IP 爬取与验证- 易用的 JSON API- 简单但美观的 web 用户界面,基于 TypeScript 和 React(例如,代理的地理分布)- 最少仅用一行代码即可与 Scrapy 和 requests 进行集成- 等等

pudb
Python第 27 期

pudb

基于控制台的全屏 Python 可视化调试器。比 pdb 好用太多了,特性:- 源码语法高亮,栈、断点、变量可见并且一直动态更新。变量展示还有很多可以定制化的功能。- 基于键盘,简单高效。支持 VI 的鼠标移动。还支持 PDB 的某些命令- 支持查找源代码,可以使用 m 代用 module browser 查看载入的模块- 断点设置。鼠标移到某行代码,按 b,然后可以在断点窗口编辑断点

暂无截图
Python第 27 期

tenacity

使用该库可以优雅地实现各种需求的重试。示例代码如下:```python from tenacity import retry, stop_after_attempt# 通过装饰器,实现遇到异常重试3次@retry(stop=stop_after_attempt(3))def get_data(url):response = requests.get(url)response_json = response.json()```

暂无截图
Python第 26 期

marshmallow

使用类似于 ORM 的语法,序列化、反序列化 Python 对象。可以将序列化的对象呈现为标准格式,适用于例如数据校验、返回 HTTP API 的 JSON。示例代码如下:```python from datetime import date from marshmallow import Schema, fields, pprint class ArtistSchema(Schema):name = fields.Str()class AlbumSchema(Schema):title = fields.Str()release_date = fields.Date()artist = fields.Nested(ArtistSchema())bowie = dict(name='David Bowie')album = dict(artist=bowie, title='Hunky Dory', release_date=date(1971, 12, 17))schema = AlbumSchema()result = schema.dump(album)pprint(result, indent=2)# 输出如下# { 'artist': {'name': 'David Bowie'},# 'release_date': '1971-12-17',# 'title': 'Hunky Dory'}```

暂无截图
Python第 26 期

redis-faina

Redis 性能分析器。提供两种模式分析模式:命令实时、读取日志。其原理是使用 Redis MONITOR 命令,将该命令的结果通过管道传递给 redis-faina 脚本,脚本将返回的信息解析,并汇成总成统计信息。具体信息如下所示:```shell注意:分析非常闲的 redis 实例时,分析的结果可能偏差的很多。时间单位为微秒:ms = 1.0 × 10^-6 seconds Overall Stats========================================# 总命令数Lines Processed 10# QPS Commands/Sec 1.03# 出现最多的 key 的前缀Top Prefixes========================================startchart 9 (90.00%)# 请求最多的key Top Keys========================================startchart:521xueweihan/hellogithub 9 (90.00%)# 请求最多的命令Top Commands========================================get 9 (90.00%)# 请求响应时间的分布Command Time (microsecs)========================================Median 583914.0 75% 637395.0 90% 5703923.0 99% 5703923.0# 总耗时最多的命令Heaviest Commands (microsecs)========================================get 9746157.0# 慢请求列表Slowest Calls========================================5703923.0 "get" "startchart:521xueweihan/hellogithub"637395.0 "get" "startchart:521xueweihan/hellogithub"633909.0 "get" "startchart:521xueweihan/hellogithub"583914.0 "get" "startchart:521xueweihan/hellogithub"569207.0 "get" "startchart:521xueweihan/hellogithub"548745.0 "get" "startchart:521xueweihan/hellogithub"545493.0 "get" "startchart:521xueweihan/hellogithub"523571.0 "get" "startchart:521xueweihan/hellogithub"```

airflow
Python第 25 期

airflow

定时任务管理平台,管理和调度各种离线定时任务,自带 Web 管理界面。当定时任务量达到百级别的时候,就无法再使用 crontab 有效、方便地管理这些任务了。该项目就是为了解决了这个问题而诞生的

暂无截图
Python第 25 期

pook

模拟 HTTP 请求结果的库,可用于单元测试等场景。采用装饰器方式调用的示例代码如下:```python import pook import requests@pook.get('http://httpbin.org/status/500', reply=204)@pook.get('http://httpbin.org/status/400', reply=200)def fetch(url):return requests.get(url)res = fetch('http://httpbin.org/status/400')print('#1 status:', res.status_code)res = fetch('http://httpbin.org/status/500')print('#2 status:', res.status_code)```

Synonyms
Python第 25 期

Synonyms

中文近义词工具包。支持自然语言理解的很多任务:文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等。示例代码如下:```python import synonyms synonyms.seg("能量")```

wtfpython
Python第 25 期

wtfpython

有趣、令人惊讶(坑爹)、鲜为人知的 Python 代码片段集合。[中文](https://github.com/leisurelicht/wtfpython-cn)

haipproxy
Python第 24 期

haipproxy

使用 Scrapy+Redis 实现的高可用分布式 IP 代理池,为大型分布式爬虫提供高可用低延迟的代理 IP 资源。```python from client.py_cli import ProxyFetcher args = dict(host='127.0.0.1', port=6379, password='123456', db=0)# 这里`zhihu`的意思是,去和`zhihu`相关的代理ip校验队列中获取ip# 这么做的原因是同一个代理IP对不同网站代理效果不同fetcher = ProxyFetcher('zhihu', strategy='greedy', redis_args=args)# 获取一个可用代理print(fetcher.get_proxy())# 获取可用代理列表print(fetcher.get_proxies()) # or print(fetcher.pool)```以知乎为目标抓取网站,该代理IP池的实际性能测试结果如下:

MovieHeavens
Python第 24 期

MovieHeavens

基于 Pyqt4 的电影天堂电影搜索工具,再也不用忍受各种广告和点击跳转了

暂无截图
Python第 24 期

WechatSogou

基于搜狗微信搜索的微信公众号爬虫库,极易上手。示例代码:```python import wechatsogou ws_api = wechatsogou.WechatSogouAPI()ws_api.get_gzh_info('微信名称')```

redash
Python第 23 期

redash

开源的数据可视化 Web 项目,提供了数据库查询和数据可视化功能。只提供的数据可视化最要的功能,使得简单易用且容易上手。可以直观地将一个 SQL 查询的结果可视化出来。同时提供 SQL 代码片段存储,减少重复编写 SQL 的问题

暂无截图
Python第 23 期

rq

基于 redis 的简单、轻量级任务队列库。可以帮助理解简单的任务队列模式和设计。使用简单、文档健全,适用于小型项目或简单的场景。```shell# Tip:job 需要通过模块引用加入到任务队列中23:46:59 Cleaning registries for queue: default 23:47:47 default: snap1.count_words_at_url('https://hellogithub.com') (c4f96606-c833-4057-8ac4-b35bc60dfec9)23:47:47 default: Job OK (c4f96606-c833-4057-8ac4-b35bc60dfec9)23:47:47 Result is kept for 500 seconds```

toapi
Python第 23 期

toapi

该项目做的事儿是通过简单的配置把目标网页的内容爬下来,缓存结果后提供成 API 的一条龙服务。

暂无截图
Python第 22 期

shell-functools

把函数式的编程带入 shell,从而让很多事情变得简单。通过 Python 的高阶函数和内置模块 os.path 与命令的管道结合,达到了强大、高效的功效。相比于单纯的命令实现更加的直观和容易理解,示例代码如下:```示例 1# ls 查看当前目录下的文件> ls document.txt folder image.jpg# 通过 map abspath 展示这些文件的绝对路径> ls | map abspath/tmp/demo/document.txt/tmp/demo/folder/tmp/demo/image.jpg示例 2# find 命令找到的文件和目录> find../folder./folder/me.jpg./folder/subdirectory./folder/subdirectory/song.mp3./document.txt./image.jpg# 把找到的结果中的文件,重命名在末尾追加 .bak (备份文件)> find | filter is_file | map basename | map append ".bak"me.jpg.bak song.mp3.bak document.txt.bak image.jpg.bak```

tqdm
Python第 22 期

tqdm

强大、快速、易扩展的 Python 进度条库。我想通过下面的示例代码和效果展示图,你会跑去给这个项目来个 Star 的```python from tqdm import tqdm for i in tqdm(range(10000)):pass# 输出结果:# 76%|████████████████████████████ | 7568/10000 [00:33

暂无截图
Python第 21 期

jieba

强大的 Python 分词库,拿来直接用就好。示例代码如下:```python# encoding=utf-8 import jieba seg_list = jieba.cut("我来到北京清华大学", cut_all=True)print("Full Mode: " + "/ ".join(seg_list)) # 全模式seg_list = jieba.cut("我来到北京清华大学", cut_all=False)print("Default Mode: " + "/ ".join(seg_list)) # 精确模式seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式print(", ".join(seg_list))seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式print(", ".join(seg_list))【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学【精确模式】: 我/ 来到/ 北京/ 清华大学【新词识别】:他, 来到, 了, 网易, 杭研, 大厦 (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造```

暂无截图
Python第 21 期

pydu

该库将平时常用的数据结构和工具都收录其中,可供日常开发的使用,同时方便学习与借鉴,丰富的[文档](http://pydu.readthedocs.io/zh/latest/)能帮助新手更好的理解和使用它。这些实用的模块都是来自于开源项目和贡献者们的智慧,快来加入到这个项目中,让它变得更加实用和丰富

thefuck
Python第 21 期

thefuck

在 Linux 命令行中,当你输入的命令有错误后,直接输入 `fuck` 就可以自动执行修复后的命令,效果图如下:

暂无截图
Python第 21 期

youtube-dl

强大的视频下载工具,支持几百个国内外主流视频网站。正如名字一样,最初是为了下载 youtube 上的视频而开发的。如果有国外服务器的朋友,可以充分利用这个工具,下载 youtube 上的视频,速度不要太爽。下面介绍安装、下载视频等命令:```# 1. 安装命令:sudo pip install youtube-dl Installing collected packages: youtube-dl Successfully installed youtube-dl-2017.12.14# 2. 查看 URL 支持格式:youtube-dl --list-formats URL format code extension resolution note 134 mp4 450x360 DASH video 449k , avc1.4d4015, 25fps, video only 17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k 36 3gp 300x240 small , mp4v.20.3, mp4a.40.2 18 mp4 450x360 medium , avc1.42001E, mp4a.40.2@ 96k 43 webm 640x360 medium , vp8.0, vorbis@128k (best)# 3. 选择格式下载视频:youtube-dl -f 18 URL (18为mp4 450x360格式)[youtube:playlist] Downloading playlist PLF90USSyuoYzPhhFG7XFBRn63Zvs--lNP - add --no-playlist to just download video JyLducMVYVg[youtube:playlist] PLF90USSyuoYzPhhFG7XFBRn63Zvs--lNP: Downloading webpage[download] Downloading playlist: 情满四合院完整版[youtube:playlist] playlist 情满四合院完整版: Downloading 42 videos[download] Downloading video 1 of 42...# 4. 下载完成后,最后使用 https://github.com/houtianze/bypy 库把下载的视频同步到百度网盘上```

暂无截图
Python第 20 期

joblib

使用 Python 方便的进行并行计算,示例代码如下:```python from joblib import Parallel, delayed from math import sqrt Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))```

暂无截图
Python第 20 期

records

Kenneth Reitz 大神的`for Humans™`系列,Records 是一个支持大多数主流关系数据库的原生 SQL 查询第三方库。API 友好,使用简单、支持命令行模式、功能多样。与此同时该库只有 500 行代码,可以当作入门阅读源码的项目,同时学习大神的编程技巧与习惯,示例代码如下:```python import records db = records.Database('postgres://...') # 连接数据库rows = db.query('select * from active_users') # 执行原生 SQL# 遍历结果for r in rows:print(r.name, r.user_email)# 友好的 print 格式print(rows.dataset)# username|active|name |user_email |timezone# --------|------|----------|-----------------|--------------------------# model-t |True |Henry Ford|model-t@gmail.com|2016-02-06 22:28:23.894202# 支持将结果导出成不同格式print(rows.export('json')) # json print(rows.export('csv')) # csv print(rows.export('yaml')) # yaml rows.export('df') # pandas 的 df 对象with open('report.xls', 'wb') as f:f.write(rows.export('xls')) # xls```

tldr-python-client
Python第 20 期

tldr-python-client

Linux man 解释一般都太长了,很多时候我们就想用一些比较常用的命令,但却记不起来。这个时候如果不 Google,就可以用 [tldr(简化 man 的工程)](https://github.com/tldr-pages/tldr)。该项目为 Python 客户端实现

zdict
Python第 20 期

zdict

方便的终端字典工具,支持多种字典和参数、翻译结果高亮、以及交互模式查询。安装命令 `pip install zdict` (仅支持 Python3)。查询效果如下图所示:

暂无截图
Python第 19 期

binlog2sql

从 MySQL binlog 解析出你要的 SQL。根据不同选项,提供如下功能- 数据快速回滚,[闪回原理与实践](https://github.com/danfengcao/binlog2sql/blob/master/example/mysql-flashback-priciple-and-practice.md)- 主从切换后新 master 丢数据的修复- 从 binlog 生成标准SQL,带来的衍生功能

暂无截图
Python第 19 期

pandas-tutorial

这套 pandas 教程包含从初级到进阶的内容,适合初学者和希望进阶建立知识体系的数据科学从业者阅读。作者还在持续更新高级内容,你值得拥有

暂无截图
Python第 19 期

pysheeet

Python 速查表,[在线阅读](https://www.pythonsheets.com/)

暂无截图
Python第 19 期

robobrowser

提供多种模拟操作网页的库,比如获得网页内容、访问链接、点击按钮、填充并提交表单、上传文件。使用简单、API 友好。适用于想要通过脚本流程化操作,某些未提供这些操作接口的场景,示例代码如下:```python# 上传文件from robobrowser import RoboBrowser# Browse to a page with an upload form browser = RoboBrowser()browser.open('http://cgi-lib.berkeley.edu/ex/fup.html')# Find the form upload_form = browser.get_form()upload_form ## Choose a file to upload upload_form['upfile'] #upload_form['upfile'].value = open('path/to/file.txt', 'r')# Submit browser.submit(upload_form)```

暂无截图
Python第 18 期

faker

用于生成假数据的库,支持多种语言,你值得拥有。示例代码:```python fake.address()# '辽宁省雪市静安廉街b座 998259'fake.street_address()# '巢湖街U座'fake.building_number()# 'x座'fake.city_suffix()# '市'fake.latitude()# Decimal('-0.295126')fake.province()# '湖北省'```

暂无截图
Python第 18 期

newspaper

强大的提取 Web 的内容、文章的库,支持多种语言,安装命令 `pip3 install newspaper3k`。示例代码:```python>>> from newspaper import Article>>> url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'>>> article = Article(url)>>> article.download()>>> article.html'>> article.parse()>>> article.authors['Leigh Ann Caldwell', 'John Honway']>>> article.publish_date datetime.datetime(2013, 12, 30, 0, 0)>>> article.text'Washington (CNN) -- Not everyone subscribes to a New Year's resolution...'>>> article.top_image'http://someCDN.com/blah/blah/blah/file.png'>>> article.movies['http://youtube.com/path/to/link.com', ...]>>> from newspaper import Article>>> url = 'http://www.bbc.co.uk/zhongwen/simp/chinese_news/2012/12/121210_hongkong_politics.shtml'>>> a = Article(url, language='zh') # Chinese>>> a.download()>>> a.parse()>>> print(a.text[:150])香港行政长官梁振英在各方压力下就其大宅的违章建筑(僭建)问题到立法会接受质询,并向香港民众道歉。梁振英在星期二(12月10日)的答问大会开始之际在其演说中道歉,但强调他在违章建筑问题上没有隐瞒的意图和动机。 一些亲北京阵营议员欢迎梁振英道歉,且认为应能获得香港民众接受,但这些议员也质问梁振英有>>> print(a.title)港特首梁振英就住宅违建事件道歉```

暂无截图
Python第 18 期

pygorithm

一个帮助学习主要算法的库,可以通过理解这些算法的实现,提高自己的算法水平。冒泡排序示例:```python>>> from pygorithm.sorting import bubble_sort>>> my_list = [12, 4, 3, 5, 13, 1, 17, 19, 15]>>> sorted_list = bubble_sort.sort(my_list)>>> print(sorted_list)>>> [1, 3, 4, 5, 12, 13, 15, 17, 19]```

暂无截图
Python第 17 期

huey

结合 redis 实现的轻量任务队列,但是支持功能还是很多的:- 多进程、多线程、协程- 任务定时执行- 任务执行失败重试- 结果存储

proxy_pool
Python第 17 期

proxy_pool

基于 Python 的自建代理 IP 池服务,通过网络爬虫抓取互联网上免费的代理 IP,本地校验、剔除失效的代理IP,从而实现高可用的代理 IP 池。最后使用 Flask 搭建提供代理 IP 服务,包括代理池刷新、无效代理删除、代理获取等。该项目设计文档详细、模块结构简明易懂,同时适合爬虫新手更好的学习爬虫技术

pyecharts
Python第 17 期

pyecharts

Echarts+Python 实现的一个用于生成 Echarts 图表的类库

暂无截图
Python第 17 期

simiki

一个简单的个人 Wiki 框架,便于快速搭建 Wiki 页。使用 Markdown 书写 Wiki, 生成静态 HTML 页面。Wiki 源文件按目录分类存放, 方便管理维护。[中文文档](http://simiki.org/zh-docs/)

weibospider
Python第 17 期

weibospider

分布式微博爬虫,支持快速抓取和稳定抓取两种运行模式。项目模块逻辑清晰、注释丰富、便于定制化自己的需求。同时,对于小白用户,可以通过演示视频快速入门,也提供QQ群答疑,已经持续维护一年多。靠谱的项目,小伙伴们要赶快上车~

暂无截图
Python第 16 期

getproxy

极简的抓取代理项目,无需配置。不仅提供了获取代理脚本,同时可以通过[该页面](https://github.com/fate0/proxylist/blob/master/proxy.list),直接获取可用代理(15min 更新、类型包含http和https)

GetSubtitles
Python第 16 期

GetSubtitles

通过拖曳视频文件进终端,**一步下载字幕** 到视频对应文件夹,并重命名字幕名称为视频名称。Ubuntu 16.04、Windows 10上测试通过,同时兼容 Python2、3。Python 的魅力之一就是可以**快速实现一个适合自己的小工具** Cool ✌️

暂无截图
Python第 16 期

LearnPython

这一个以”撸代码“的形式学习 Python 的编程技巧的项目,针对 Python 的一些语法特性力求通过代码例子解释该知识点、同时还有一些实践项目,通过动手实践有助于知识的融会贯通。同时可以关注作者的[知乎专栏](https://zhuanlan.zhihu.com/pythoner)学习更多的 Python 编程技巧

暂无截图
Python第 16 期

syncPlaylist

在网易云音乐与 QQ 音乐之间同步歌单。易于使用、配置方便、代码简单,用到的技术:`requests` + `beautifulsoup` 以及 `selenium` + `phantomjs`

暂无截图
Python第 15 期

aredis

一款基于 Python3 asyncio 的异步 redis 客户端,支持对于单实例,连接池, 哨兵以及集群。[作者](https://github.com/NoneGG)希望可以找到志同道合的小伙伴集思广益,一起维护、优化。示例代码如下:```Python>>> import asyncio>>> from aredis import StrictRedis>>>>>> async def example():>>> client = StrictRedis(host='127.0.0.1', port=6379, db=0)>>> await client.flushdb()>>> await client.set('foo', 1)>>> assert await client.exists('foo') is True>>> await client.incr('foo', 100)>>>>>> assert int(await client.get('foo')) == 101>>> await client.expire('foo', 1)>>> await asyncio.sleep(0.1)>>> await client.ttl('foo')>>> await asyncio.sleep(1)>>> assert not await client.exists('foo')>>>>>> loop = asyncio.get_event_loop()>>> loop.run_until_complete(example())```

暂无截图
Python第 15 期

django-blog-tutorial

基于最新版 Django 1.10 和 Python 3.5,通过 26 篇教程一步步带你使用 Django 从零开发一个个人博客系统,在实践的同时掌握 Django 的开发技巧,[完成效果展示](http://demo.zmrenwu.com/)

暂无截图
Python第 15 期

freezegun

时间漫步模块,模拟到某一个时间,使用简单方式多样,实现了装饰器、上下文等调用方式。示例代码如下:```python from freezegun import freeze_time import datetime import unittest@freeze_time("2012-01-14")def test():assert datetime.datetime.now() == datetime.datetime(2012, 1, 14)```

musicbox
Python第 15 期

musicbox

基于 Python 编写的网易云音乐**命令行**版本,使用起来简单优雅,能够快速安装及使用

snake
Python第 15 期

snake

贪吃蛇游戏 AI 版,通过算法实现让小蛇通过吃豆,最后蛇的身体填满整个地图算结束。该项目详细描述实现思想以及相关算法的讨论

certbot
Python第 14 期

certbot

免费的自动启用和部署 HTTPS 的工具,让你的网站开启 HTTPS 变得简单快捷。在部署教程页面选择服务器的操作系统和 Web 服务器,之后根据给出的步骤一步步的执行命令就行了,[部署教程](https://certbot.eff.org/)

explainshell
Python第 14 期

explainshell

一个可以解析 Linux 命令的网站,它可以给出命令的解释和其参数的解释,例如:`ps -aux|grep python`,[在线演示](https://www.explainshell.com/)

pdir2
Python第 14 期

pdir2

Python 程序员需要一个更好的 `dir()` —— 以更加友好的显示 `dir()` 输出的结果

暂无截图
Python第 13 期

algorithms

基本算法、数据结构的 Python 实现```.├── array│ ├── circular_counter.py│ └── ...├── backtrack│ ├── anagram.py│ └── ...├── bfs│ ├── shortest_distance_from_all_buildings.py│ └── word_ladder.py├── bit│ ├── count_ones.py│ └── ...│ └── traversal.py└── 等等```

暂无截图
Python第 13 期

grequests

Rquests + Gevent 让异步 HTTP 变得简单、人性化。示例代码:```python>>> import grequests>>> def exception_handler(request, exception):... print "Request failed">>> reqs = [... grequests.get('http://httpbin.org/delay/1', timeout=0.001),... grequests.get('http://fakedomain/'),... grequests.get('http://httpbin.org/status/500')]>>> grequests.map(reqs, exception_handler=exception_handler)Request failed Request failed[None, None, ]```

暂无截图
Python第 13 期

ltp

语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心开源的一整套中文语言处理系统。提供了一系列中文自然语言处理工具,这些工具可以用于中文文本进行分词、词性标注、句法分析等工作

暂无截图
Python第 13 期

ngxtop

解析 nginx 访问日志并格式化输出有用的信息,可以用来实时了解你的服务器正在发生的情况。安装命令 `pip install ngxtop`,输出示例如下:```$ ngxtop running for 411 seconds, 64332 records processed: 156.60 req/sec Summary:| count | avg_bytes_sent | 2xx | 3xx | 4xx | 5xx ||---------+------------------+-------+-------+-------+-------|| 64332 | 2775.251 | 61262 | 2994 | 71 | 5 |Detailed:| request_path | count | avg_bytes_sent | 2xx | 3xx | 4xx | 5xx ||------------------------------------------+---------+------------------+-------+-------+-------+-------|| /abc/xyz/xxxx | 20946 | 434.693 | 20935 | 0 | 11 | 0 || /xxxxx.json | 5633 | 1483.723 | 5633 | 0 | 0 | 0 || /xxxxx/xxx/xxxxxxx | 3624 | 7830.236 | 3621 | 0 | 3 | 0 || /static/js/minified/utils.min.js | 3031 | 1781.155 | 2104 | 927 | 0 | 0 |```

暂无截图
Python第 13 期

searx

分分钟打造一个聚合的搜索引擎,使用简单,部署方便。拓展方便,基于插件式的管理。[演示地址](https://searx.me/)

mycli
Python第 12 期

mycli

mycli 是一个带语法高亮、自动补全的 MySQL 命令行客户端工具。例如,连接数据库方法:`mycli -h localhost -u 用户名 数据库`

暂无截图
Python第 12 期

python-fire

Fire 是 Google 开源的 Python 库,可自动将您的代码转变成 CLI,无需您做任何额外工作。您不必定义参数,设置帮助信息,或者编写定义代码运行方式的 main 函数。相反,您只需从 main 模块调用“Fire”函数,其余工作全部交由 Python Fire 来完成。示例代码如下:```python import fire class Example(object):def hello(self, name='world'):"""Says hello to the specified name."""return 'Hello {name}!'.format(name=name)def main():fire.Fire(Example)if __name__ == '__main__':main()# 在终端中调用效果如下:$ ./example.py hello Hello world!$ ./example.py hello David Hello David!$ ./example.py hello --name=Google Hello Google!```

暂无截图
Python第 11 期

fastText

fastText 简而言之,就是把文档中所有词通过 lookup table 变成向量,取平均后直接用线性分类器得到分类结果。[fastText 的实现](https://www.zybuluo.com/Wayne-Z/note/460881)

暂无截图
Python第 11 期

mongoaudit

强大的 MongoDB 渗透测试工具,用于发掘 MongoDB 漏洞、并提出改善方法。- 安装:`pip install mongoaudit`- 运行:`python mongoaudit`

暂无截图
Python第 11 期

sh

sh 是一个成熟,用于替代 subprocess,它允许你调用任何程序,就像它是一个函数,支持 Python2.6 - 3.5```python from sh import ifconfig print ifconfig("eth0")```

jumpserver
Python第 10 期

jumpserver

Jumpserver 是一款由 Python 编写开源的跳板机(是一类可作为跳板批量操作远程设备的网络设备)系统,实现了跳板机应有的功能。基于 SSH 协议来管理,客户端无需安装 agent。支持常见 Linux 系统,效果如下:

locust
Python第 10 期

locust

模拟用户行为的[负载测试](http://blog.csdn.net/kerryzhu/article/details/3515714)工具,包含友好的 Web 页面,如下图:

saythanks.io
Python第 10 期

saythanks.io

Kennethreitz 写的一个简单的网站(基于 Flask),用于向开源项目作者发送感谢邮件的 Web App。该项目结构简单,可以用来学习大神是如何快速开发 Web 项目、方法、代码风格、开发常用库。而且该项目的意义也特别好:**感谢开源项目的作者**,愿开源社区越来越好,[网站地址](https://saythanks.io)

暂无截图
Python第 9 期

flask-limiter

一个 Flask 的扩展库,它可以根据访问者的 IP 限制其访问频率、次数等。示例代码如下:```python from flask import Flask from flask_limiter import Limiter from flask_limiter.util import get_remote_address app = Flask(__name__)limiter = Limiter(app,key_func=get_remote_address,global_limits=["2 per minute", "1 per second"],)@app.route("/slow")@limiter.limit("1 per day")def slow():return "24"@app.route("/fast")def fast():return "42"@app.route("/ping")@limiter.exempt def ping():return 'PONG'app.run()```

glances
Python第 9 期

glances

一个可以让你**一目了然**你的系统情况(类 (h)top)的工具,它界面友好,安装方便:`pip install glances`

ngrok
Python第 9 期

ngrok

一个十分方便、好用的内网穿透工具,它可以把本地某个端口的服务,通过一个安全隧道,映射到公网的一个地址。同时它提供了一个 Web 页面,展示了每个请求、响应的所有信息,便于调试本地的程序。基本的使用方法如下:```ngrok 协议 本地服务监听的端口ngrok http 8000创建成功会返回公网地址,然后通过该地址就可以访问到本地的服务。本地访问 http://localhost:4040,就可以查看关于每个请求、响应的相关数据```

httpstat
Python第 8 期

httpstat

httpstat 美化了 `curl` 的结果,使得结果更加可读。同时它无依赖、兼容 Python3、一共才 300 多行。还可以显示 HTTP 请求的每个过程中消耗的时间,如下图:

暂无截图
Python第 8 期

PyMySQL

纯 Pyton 写的 MySQL 库,纯 Python 的好处就是可以运行在任何装有 Python 解释器(CPython、PyPy、IronPython)的平台上。相对于 [MySQLdb](https://github.com/farcepest/MySQLdb1) 性能几乎一样,使用方法也一样,但是 **PyMySQL 安装方法极其简单**——`pip install PyMySQL`,PyMySQL 使用示例代码:```# 下面为例子需要的数据库的建表语句CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT,`email` varchar(255) COLLATE utf8_bin NOT NULL,`password` varchar(255) COLLATE utf8_bin NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;``````python# -*- coding: utf-8 -*-import pymysql.cursors# 连接数据库connection = pymysql.connect(host='localhost',user='user',password='passwd',db='db',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)try:with connection.cursor() as cursor:# 创建一个新的纪录(record)sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"cursor.execute(sql, ('webmaster@python.org', 'very-secret'))# 连接不会自动提交,所以你想下面要调用 commit 方法,存储对数据库的改动connection.commit()with connection.cursor() as cursor:sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"cursor.execute(sql, ('webmaster@python.org',))# 获取一条的纪录(record)result = cursor.fetchone()print(result) # 结果输出:{'password': 'very-secret', 'id': 1}finally:connection.close() # 操作完数据库一要记得调用 close 方法,关闭连接```

reddit
Python第 8 期

reddit

[reddit.com](https://www.reddit.com/) 网站的源码,通过这个项目,可以学习 Python 在构建大型项目中的使用、项目结构、代码风格、Python 技巧的使用方法等。[安装教程](https://github.com/reddit/reddit/wiki/Install-guide)

cli
Python第 7 期

cli

非常好用的命令行 HTTP 客户端,cURL 的替代者,返回的结果支持**高亮**,提高了可读性。用于调试接口、查看服务器返回的 HTTP 协议的信息。[在线文档](https://httpie.org/docs#examples),下面的是 cURL 和 httpie 的返回结果对比图:

暂无截图
Python第 7 期

fake-useragent

伪装浏览器身份,常用于爬虫。这个项目的代码很少,可以阅读一下,看看 `ua.random` 是如何返回随机的浏览器身份的😁,示例代码:```python from fake_useragent import UserAgent ua = UserAgent()ua.ie# Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);ua.msie# Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'ua['Internet Explorer']# Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)ua.opera# Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11 ua.chrome# Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'ua.google# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13 ua['google chrome']# Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 ua.firefox# Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1 ua.ff# Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1 ua.safari# Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25# and the best one, random via real world browser usage statistic ua.random```

暂无截图
Python第 7 期

langid.py

用于识别输入文本数据所属的语种,目前支持 97 种语言识别。示例代码:```python import langid text1 = "I am a coder and love data mining"text2 = "请注明作者和出处并保留声明和联系方式"print langid.classify(text1)print langid.classify(text2)# ('en', 0.9999957874458753)# ('zh', 1.0)```

amazing-qr
Python第 6 期

amazing-qr

Python 写的生成动态、彩色、各式各样的二维码,详细的[中文文档](https://github.com/sylnsfar/qrcode/blob/master/README-cn.md),通过 `qrcode` 生成的二维码样式如下:

Young
Python第 6 期

Young

基于 Tornado 框架、MongoDB 数据库,写的功能丰富的社区项目。详细的[安装步骤](https://github.com/shiyanhui/Young/blob/master/README_CN.md),适合学习如何创建社区类 Web App。[在线预览](http://beyoung.io/),项目运行效果图:

flaskbb
Python第 5 期

flaskbb

基于 Flask 框架做的论坛,功能有限,轻量级的论坛应用[在线文档](https://flaskbb.readthedocs.io/en/latest/index.html),可以在这个项目上进行二次开发,实现更加复杂的功能。[在线预览](https://forums.flaskbb.org)

暂无截图
Python第 5 期

fuck-login

模拟登录一些知名的网站,为了方便爬取需要登录的网站。**注意**:控制爬虫的爬取频率!

superset
Python第 5 期

superset

企业级的数据探索、展示平台。功能很强大,可以用来做数据分析、展示。如下图:

flask-admin
Python第 4 期

flask-admin

我工作中需要写一个微型的管理系统,用的就是这个框架。简直快餐型,页面都写好了,只要设置好相关配置就可以跑起来了。唯一缺点就是文档中的例子少,开发一些特定的需求需要自己看源码,才能知道如何改。[文档](https://flask-admin.readthedocs.io/en/latest/),下面是我跑起来之后的样子:

python-guide
Python第 4 期

python-guide

Requests 库的作者——kennethreitz,写的 Python 入门教程。不单单是语法层面的,涵盖项目结构、代码风格,进阶、工具等方方面面。虽然是**英文版**([中文翻译版](http://pythonguidecn.readthedocs.io/zh/latest/)),但我这个英语渣都能看懂,你肯定也可以,快去看看吧,开卷有益。[在线阅读](http://docs.python-guide.org/en/latest/)

暂无截图
Python第 4 期

python-sdk

七牛云存储 SDK。我自己在用他家的服务,上手简单、有免费额度,可以用来做‘图床’,同时,有了这个 SDK 可以写一些好用的小工具。**注意**:图床不能随便用,我曾经就用超了,账户的钱能扣成**负数**!

暂无截图
Python第 3 期

KindleEar

这是一个运行在 Google App Engine(GAE) 上的 Kindle 个人推送服务应用,生成排版精美的杂志模式 `mobi/epub` 格式自动每天推送至您的 Kindle 或其他邮箱。

walle-web
Python第 3 期

walle-web

Walle(瓦力) 一个 Web 部署系统工具,可能也是个持续发布工具,配置简单、功能完善、界面流畅、开箱即用!支持 git、svn 版本管理,支持各种 Web 代码发布,静态的 HTML,动态 PHP,需要编译的 Java 等。[中文介绍](https://github.com/meolu/walle-web/blob/master/docs/README-zh.md),使用展示如图:

暂无截图
Python第 2 期

mincss

Python 写的用来找到 CSS 中没有用到的代码片段,并删除。适用于:想要做一个页面,但是不会写 CSS 人。示例代码如下:```python#coding:utf-8#!/usr/bin/env python from __future__ import print_function import sys, os sys.path.insert(0, os.path.abspath('.'))from mincss.processor import Processor# 这里改成想要参考的页面URL = 'http://localhost:9000/page.html'def run():p = Processor()p.process(URL)# 输出INlink的css的简化前和简化后的css代码print("INLINES ".ljust(79, '-'))for each in p.inlines:print("On line %s" % each.line)print('- ' * 40)print("BEFORE")print(each.before)print('- ' * 40)print("AFTER:")print(each.after)# 输出link引用的css的简化前和简化后的css代码print("LINKS ".ljust(79, '-'))for each in p.links:print("On href %s" % each.href)print('- ' * 40)print("BEFORE")print(each.before)print('- ' * 40)print("AFTER:")print(each.after)if __name__ == '__main__':run()```

暂无截图
Python第 2 期

python-goose

Goose 用于文章提取器,提取中文内容的示例代码:```python>>> from goose import Goose>>> from goose.text import StopWordsChinese>>> url = 'http://www.bbc.co.uk/zhongwen/simp/chinese_news/2012/12/121210_hongkong_politics.shtml'>>> g = Goose({'stopwords_class': StopWordsChinese})>>> article = g.extract(url=url)>>> print article.cleaned_text[:150]香港行政长官梁振英在各方压力下就其大宅的违章建筑(僭建)问题到立法会接受质询,并向香港民众道歉。梁振英在星期二(12月10日)的答问大会开始之际在其演说中道歉,但强调他在违章建筑问题上没有隐瞒的意图和动机。一些亲北京阵营议员欢迎梁振英道歉,且认为应能获得香港民众接受,但这些议员也质问梁振英有```

暂无截图
Python第 1 期

awesome-python-webapp

廖老师的 Python 入门教程中的实践项目的代码,[教程在线阅读](http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397616003925a3d157284cd24bc0952d6c4a7c9d8c55000)

beijing_bus
Python第 1 期

beijing_bus

北京实时公交,可以显示查询的公交到达某站还需多久

暂无截图
Python第 1 期

Minos

一个基于 Tornado/MongoDB/Redis 的社区系统

tushare
Python第 1 期

tushare

TuShare 是一个免费、开源的 Python 财经数据接口包,[TuShare 文档](http://tushare.org/index.html)