HelloGitHub我感兴趣的python项目

以下项目总结均来自HelloGitHub,我只是把自己感兴趣的拿出来啦

github地址 https://github.com/521xueweihan/HelloGitHub

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

  • python-systemd-tutorial:用 Python 编写 systemd 服务的教程。许多 Linux 发行版都用 systemd 来管理系统的服务,比如开机启动、自动重启、守护进程等。该项目讲解了如何入门 systemd,并提供了一个 Python 脚本和 systemd unit 文件,可以在此基础上快速开发出 systemd 服务

    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)
    
  • django-silk:Django 的性能分析工具。它可以将 Django 服务的平均耗时、请求次数、查询 SQL、代码性能分析等信息展示到一个页面,开发者有了这些信息就能够更快地找到 Django 服务的性能瓶颈和响应慢的原因

    # 安装
    pip install django-silk
    
    # 中间件的方式使用
    MIDDLEWARE = [
        ...
        'silk.middleware.SilkyMiddleware',
        ...
    ]
    
    INSTALLED_APPS = (
        ...
        'silk'
    )
    
  • schedule:简单友好的 Python 任务调度库。该项目人性化的 API 设计,让开发者仅用几行代码就能轻松实现定时任务。它不依赖任何第三方库,全部代码也就一个文件 800 多行,拥有丰富的注释和单元测试,源码阅读起来十分轻松

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

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

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

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

    表格报告:memray table [options]
    实时报告:memray run --live application.py
    统计结果:memray stats [options]
    
  • django-debug-toolbar:Django 的调试工具栏。可显示当前请求和响应有关的各种调试信息,包括耗时、SQL、配置、性能等信息

  • pendulum:让 Python 处理时间更简单的库。该项目不仅提供了更加简单易用的 API,而且还兼容 datetime 标准库,可以直接替代码中的 datetime 对象。它提供了很多人性化的时间处理方式,比如时间加减、多长时间的描述以及时区的处理等等

    >>> 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'
    
  • numpy-100:Numpy 的练习册。该项目包含了 100 个关于 Python 常用的数据处理库 Numpy 的练习和解决方案

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

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

  • rembg:简单实用的删除图像背景/抠图工具

    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)
    
  • textdistance:计算文本距离的常用算法库。包含计算文本相似度、多样性、编辑距离、压缩等多种算法,所有算法均采用 Python 实现,容易理解调用方便

  • tiptop:炫酷的命令行系统监控工具

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

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

  • orjson:更快更强的 Python JSON 库。支持比如日期、numpy 数组等丰富的数据类型,而且速度更快

    >>> 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]]}
    
  • PyWebIO:快速构建 Web 应用的 Python 工具。通过该项目你可在不写 HTML、CSS、JS 代码的前提下,仅用 Python 快速完成一个包含数据展示、表单的小型 Web 应用页面

  • QWidgetDemo:Qt 编写的示例集合。每个示例都可独立运行、代码简洁易懂,适合初学者学习

  • 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 框架
    
  • termpair:浏览器远程+实时操作命令行的工具。让开发者安全实时的共享终端,特别适合服务器非桌面系统的环境。有了它下次再遇到问题,求助大佬远程协助就方便多了

    # 安装
    pip install termpair
    # 起服务
    termpair serve
    # 生成远程控制终端的链接
    termpair share
    
  • weiboSpider:Python 写的微博爬虫,命令行直接启动。支持获取微博用户、内容字段丰富。虽然爬虫的实战项目很多,但能一直更新的很少,因为只要数据源变动爬虫就要跟进迭代。这个项目更新稳定回复问题及时实属不易,希望大家在享受项目带来的便利同时也可以 Star 支持一下

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

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

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

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

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

  • GeneralNewsExtractor:基于《基于文本及符号密度的网页正文提取方法》论文用 Python 实现的正文抽取器,可以用来提取 HTML 中正文的内容、作者、标题。

  • 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)
    
  • 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
    
  • Python-100-Days:《Python 100 天从新手到大师》—— Python 的入门学习资料,学习曲线低。非专业人士也能上手学习,适合新手入门

  • ffmpeg-python:FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。这个是其 Python 的库,可以用该库操作、处理视频和音频。示例代码

    # 水平翻转视频
    import ffmpeg
    stream = ffmpeg.input('input.mp4')
    stream = ffmpeg.hflip(stream)
    stream = ffmpeg.output(stream, 'output.mp4')
    ffmpeg.run(stream)
    
  • better-exceptions:更加友好、实用、漂亮的输出 Python 异常
    https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/36/84720080.png

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

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

  • click: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!
    
    
  • loguru:一个让Python日志日志变得简单的库

  • tinydb:tinydb python python nosql数据库Web应用、高性能的数据查询。友善的API,示例代码:

    >>> 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}]
    
  • tenacity:使用该库可以优雅地实现各种需求的重试。示例代码如下

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

  • rq:基于 redis 的简单、轻量级任务队列库。可以帮助理解简单的任务队列模式和设计。使用简单、文档健全,适用于小型项目或简单的场景。

  • tqdm:强大、快速、易扩展的 Python 进度条库。我想通过下面的示例代码和效果展示图,你会跑去给这个项目来个 Star 的

-newspaper:强大的提取 Web 的内容、文章的库,支持多种语言,安装命令 pip3 install newspaper3k。示例代码:

  • huey:结合redis实际的轻量任务列表,但是支持能力还是很多的:

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

  • aredis:一款基于 Python3 asyncio 的异步 redis 客户端,支持对于单实例,连接池, 哨兵以及集群。作者希望可以找到志同道合的小伙伴集思广益,一起维护、优化。示例代码如下

       >>> 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())
    
  • algorithms:基本算法、数据结构的 Python 实现

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

  • python-fire:Fire 是 Google 开源的 Python 库,可自动将您的代码转变成 CLI,无需您做任何额外工作。您不必定义参数,设置帮助信息,或者编写定义代码运行方式的 main 函数。相反,您只需从 main 模块调用“Fire”函数,其余工作全部交由 Python Fire 来完成。示例代码如下:

    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()
    
  • locust:模拟用户行为的负载测试工具,包含友好的 Web 页面

  • flask-limiter:一个 Flask 的扩展库,它可以根据访问者的 IP 限制其访问频率、次数等

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

  • qrcode Python 写的生成动态、彩色、各式各样的二维码

  • textfilter:基于某 1w 词敏感词库,用 Python 实现几种不同的过滤方式。用于过滤敏感词的实用模块

  • Young:基于 Tornado 框架、MongoDB 数据库,写的功能丰富的社区项目。

  • python-guide:Requests 库的作者——kennethreitz,写的 Python 入门教程。不单单是语法层面的,涵盖项目结构、代码风格,进阶、工具等方方面面

  • algorithm:老齐的 Python 算法教程

其它
  • sql-injection-payload-list:关于 SQL 注入知识的集合。该项目解释了什么是 SQL 注入和一些常见的例子,以及如何发现、利用、防范各种 SQL 注入漏洞。

  • system-design:系统设计从入门到面试。该教程从基础协议讲起,然后介绍常见的数据库、消息队列等服务,最后是面试和实际的案例分析。内容循序渐进、图文并茂,强烈推荐大家学习。

  • checkchan-dist:网页内容监控工具。能监测网页内容变化,并发送异动通知,可用来跟踪网站内容、追番剧和小说。

  • 彩票:年会抽奖程序。基于Express + Three.js的3D球体抽奖项目,能够自定义正文、图片和抽奖规则,还支持一键进入抽奖抽奖员

  • vue-color-avatar:纯前端实现的矢量风格头像生成网站。可以通过搭配不同的素材,生成个性化头像。该项目使用 Vite + Vue3 开发,能够帮助前端初学者熟悉 Vue3 语法并掌握项目搭建的相关知识

  • makegirlsmoe_web:动漫角色图片生成工具。支持:选择发色、发型、眼睛、皮肤、微笑、风格等等特征生成二次元图片。自定义生成可爱的二次元头像,二次元界福音。在线尝试

  • semi-design:抖音开源的中后台前端解决方案。包含设计语言、React 组件、主题,开箱即用可快速搭建美观的 React 应用

    使用 TypeScript
    强大的主题定制
    国际化
    支持 SSR
    
  • spy-debugger:远程调试手机页面和抓包的工具。操作简单仅需手机和电脑在同一个 WIFI 下,即可在实现真机调试页面

  • Knot:一款 iOS 抓包工具。实现了 HTTP(S) 解析、流量解析、多格式导出、证书管理以及过程分析等

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

  • iDataV:大屏数据可视化项目集合

  • hyper:基于 Electron 的超高颜值终端工具。颜值即正义不仅在找对象时有用,挑工具时也同样奏效。它支持包括 Windows、Linux、macOS 等主流操作系统快下载试试,让你的终端漂亮得不像实力派

  • vulhub:一个面向大众的开源漏洞环境集合。Vulhub 中包含了 180 余个丰富且真实的漏洞与其相应的环境,无需 Docker 知识即可通过一条简单的命令,跑起来一个存在某个漏洞的完整应用。安全研究人员能够方便地复现与研究漏洞,省去了学习复杂的部署知识、寻找有漏洞的旧版本应用、搭建依赖的服务等麻烦,从而可以快速验证修复方案

  • cool-admin-midway:一款基于 Node.js+midway.js 的后台权限管理系统。它开源免费不仅能够快速开发增删改查的需求,还支持 Serverless、Docker 等多种方便的部署方式,不管是用来学习如何开发管理后台,还是快速开发都是不错的选择

  • ferry:基于 Gin + Vue + Element UI 前后端分离的工单系统。该系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等功能, 帮助减少跨部门之间的沟通,提升工作效率与工作质量,减少不必要的工作量与人为出错率

  • free-font:免费可商用的字体集合。这个项目收录的都是免费可商用的字体,并且仔细地标记出了商用时是否需要获取授权等细节

  • honeyed-words-generator:一个“土味情话”在线生成项目。支持生成图片、分享二维码,在线访问。你们先看,我看完被撩到了我先去静静

机器学习
  • DeOldify:一款可以给老旧照片上色的项目。该项目基于深度学习实现了对黑白图像和视频进行着色的功能

  • stable-diffusion:可以根据文字生成图片的模型。只要输入一段文字描述,就能得到一张由 AI 生成的图片,除此之外该项目还支持将粗糙的草图转化成精致的艺术图片

  • spleeter:基于 Tensorflow 实现的音轨分离工具。可以用于提取音乐中的人声、鼓、钢琴等乐器

  • snownlp:一个 Python 写的自然语言处理库。使用简单、功能强大,支持中文分词、词性标注、情感分析等

    from snownlp import SnowNLP
    
    s = SnowNLP(u'这个东西真心很赞')
    s.words         # [u'这个', u'东西', u'真心',
                    #  u'很', u'赞']
    s.tags          # [(u'这个', u'r'), (u'东西', u'n'),
                    #  (u'真心', u'd'), (u'很', u'd'),
                    #  (u'赞', u'Vg')]
    s.sentiments    # 0.9769663402895832 positive的概率
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风华浪浪

讨个老婆本呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值