愛伊米

100個有趣的Python專案,建議收藏!

Github上面有很多有趣的python專案,包括軟體、庫、教程、資源等。這次收集了其中比較受歡迎的100個,供大家參考。

1、awesome-python-webapp:廖老師的 Python 入門教程中的實踐專案的程式碼

2、Minos:一個基於 Tornado/MongoDB/Redis 的社群系統

3、tushare:TuShare 是一個免費、開源的 Python 財經資料介面包,TuShare 文件

100個有趣的Python專案,建議收藏!

4、beijing_bus:北京實時公交,可以顯示查詢的公交到達某站還需多久

100個有趣的Python專案,建議收藏!

5、luokr。com:Python Tornado 寫的開源網站——螺殼網,訪問,如圖:

100個有趣的Python專案,建議收藏!

6、ssbc:Python Django 寫的種子搜尋網站——手撕包菜,如圖:

100個有趣的Python專案,建議收藏!

7、listen1:Listen 1 讓你用一個網頁就能聽到多個網站的線上音樂,支援各種平臺。如圖:

100個有趣的Python專案,建議收藏!

8、python-gems:有趣的 Pyhton 程式碼片段集合

9、algorithm:老齊的 Python 演算法教程

10、python-goose:Goose 用於文章提取器,提取中文內容的示例程式碼:

11、mincss:Python 寫的用來找到 CSS 中沒有用到的程式碼片段,並刪除。適用於:想要做一個頁面,但是不會寫 CSS 人。示例程式碼如下:

12、KindleEar:這是一個執行在 Google App Engine(GAE) 上的 Kindle 個人推送服務應用,生成排版精美的雜誌模式格式自動每天推送至您的 Kindle 或其他郵箱。

13、python-guide:Requests 庫的作者——kennethreitz,寫的 Python 入門教程。不單單是語法層面的,涵蓋專案結構、程式碼風格,進階、工具等方方面面。雖然是英文版(中文翻譯版),但我這個英語渣都能看懂,你肯定也可以,快去看看吧,開卷有益。線上閱讀

14、flask-admin:我工作中需要寫一個微型的管理系統,用的就是這個框架。簡直快餐型,頁面都寫好了,只要設定好相關配置就可以跑起來了。唯一缺點就是文件中的例子少,開發一些特定的需求需要自己看原始碼,才能知道如何改。文件,下面是我跑起來之後的樣子:

100個有趣的Python專案,建議收藏!

15、python-sdk:七牛雲端儲存 SDK。我自己在用他家的服務,上手簡單、有免費額度,可以用來做‘圖床’,同時,有了這個 SDK 可以寫一些好用的小工具。注意:圖床不能隨便用,我曾經就用超了,賬戶的錢能扣成負數!

16、superset:企業級的資料探索、展示平臺。功能很強大,可以用來做資料分析、展示。如下圖:

100個有趣的Python專案,建議收藏!

17、flaskbb:基於 Flask 框架做的論壇,功能有限,輕量級的論壇應用線上文件,可以在這個專案上進行二次開發,實現更加複雜的功能。線上預覽

100個有趣的Python專案,建議收藏!

18、fuck-login:模擬登入一些知名的網站,為了方便爬取需要登入的網站。注意:控制爬蟲的爬取頻率!

19、Young:基於 Tornado 框架、MongoDB 資料庫,寫的功能豐富的社群專案。詳細的安裝步驟,適合學習如何建立社群類 Web App。線上預覽,專案執行效果圖:

100個有趣的Python專案,建議收藏!

20、textfilter:基於某 1w 詞敏感詞庫,用 Python 實現幾種不同的過濾方式。用於過濾敏感詞的實用模組,示例程式碼:

21、qrcode:Python 寫的生成動態、彩色、各式各樣的二維碼,詳細的中文文件,透過  生成的二維碼樣式如下:

22、httpie:非常好用的命令列 HTTP 客戶端,cURL 的替代者,返回的結果支援高亮,提高了可讀性。用於除錯介面、檢視伺服器返回的 HTTP 協議的資訊。線上文件,下面的是 cURL 和 httpie 的返回結果對比圖:

100個有趣的Python專案,建議收藏!

23、langid:用於識別輸入文字資料所屬的語種,目前支援 97 種語言識別。示例程式碼:

24、fake-useragent:偽裝瀏覽器身份,常用於爬蟲。這個專案的程式碼很少,可以閱讀一下,看看  是如何返回隨機的瀏覽器身份的 ,示例程式碼:

25、reddit:reddit。com 網站的原始碼,透過這個專案,可以學習 Python 在構建大型專案中的使用、專案結構、程式碼風格、Python 技巧的使用方法等。安裝教程

100個有趣的Python專案,建議收藏!

26、httpstat:httpstat 美化了  的結果,使得結果更加可讀。同時它無依賴、相容 Python3、一共才 300 多行。還可以顯示 HTTP 請求的每個過程中消耗的時間,如下圖:

100個有趣的Python專案,建議收藏!

27、PyMySQL:純 Pyton 寫的 MySQL 庫,純 Python 的好處就是可以執行在任何裝有 Python 直譯器(CPython、PyPy、IronPython)的平臺上。相對於 MySQLdb 效能幾乎一樣,使用方法也一樣,但是 PyMySQL 安裝方法極其簡單——,PyMySQL 使用示例程式碼:

28、flask-limiter:一個 Flask 的擴充套件庫,它可以根據訪問者的 IP 限制其訪問頻率、次數等。示例程式碼如下:

29、ngrok:一個十分方便、好用的內網穿透工具,它可以把本地某個埠的服務,透過一個安全隧道,對映到公網的一個地址。同時它提供了一個 Web 頁面,展示了每個請求、響應的所有資訊,便於除錯本地的程式。基本的使用方法如下:

100個有趣的Python專案,建議收藏!

30、glances:一個可以讓你一目瞭然你的系統情況(類 (h)top)的工具,它介面友好,安裝方便:

100個有趣的Python專案,建議收藏!

31、saythanks。io:Kennethreitz 寫的一個簡單的網站(基於 Flask),用於向開源專案作者傳送感謝郵件的 Web App。該專案結構簡單,可以用來學習大神是如何快速開發 Web 專案、方法、程式碼風格、開發常用庫。而且該專案的意義也特別好:感謝開源專案的作者,願開源社群越來越好,網站地址

100個有趣的Python專案,建議收藏!

32、locust:模擬使用者行為的負載測試工具,包含友好的 Web 頁面,如下圖:

100個有趣的Python專案,建議收藏!

33、jumpserver:Jumpserver 是一款由 Python 編寫開源的跳板機(是一類可作為跳板批次操作遠端裝置的網路裝置)系統,實現了跳板機應有的功能。基於 SSH 協議來管理,客戶端無需安裝 agent。支援常見 Linux 系統,效果如下:

100個有趣的Python專案,建議收藏!

34、sh:sh 是一個成熟,用於替代 subprocess,它允許你呼叫任何程式,就像它是一個函式,支援 Python2。6 - 3。5

35、fastText。py:fastText 簡而言之,就是把文件中所有詞透過 lookup table 變成向量,取平均後直接用線性分類器得到分類結果。fastText 的實現

36、mongoaudit:強大的 MongoDB 滲透測試工具,用於發掘 MongoDB 漏洞、並提出改善方法。

安裝:

執行:

37、mycli:mycli 是一個帶語法高亮、自動補全的 MySQL 命令列客戶端工具。例如,連線資料庫方法:

100個有趣的Python專案,建議收藏!

38、python-fire:Fire 是 Google 開源的 Python 庫,可自動將您的程式碼轉變成 CLI,無需您做任何額外工作。您不必定義引數,設定幫助資訊,或者編寫定義程式碼執行方式的 main 函式。相反,您只需從 main 模組呼叫“Fire”函式,其餘工作全部交由 Python Fire 來完成。示例程式碼如下:

39、ngxtop:解析 nginx 訪問日誌並格式化輸出有用的資訊,可以用來實時瞭解你的伺服器正在發生的情況。安裝命令 ,輸出示例如下:

40、algorithms:基本演算法、資料結構的 Python 實現

41、searx:分分鐘打造一個聚合的搜尋引擎,使用簡單,部署方便。拓展方便,基於外掛式的管理。演示地址

42、grequests:Rquests + Gevent 讓非同步 HTTP 變得簡單、人性化。示例程式碼:

43、explainshell:一個可以解析 Linux 命令的網站,它可以給出命令的解釋和其引數的解釋,例如:,線上演示

100個有趣的Python專案,建議收藏!

44、certbot:免費的自動啟用和部署 HTTPS 的工具,讓你的網站開啟 HTTPS 變得簡單快捷。在部署教程頁面選擇伺服器的作業系統和 Web 伺服器,之後根據給出的步驟一步步的執行命令就行了,部署教程

100個有趣的Python專案,建議收藏!

45、musicbox:基於 Python 編寫的網易雲音樂命令列版本,使用起來簡單優雅,能夠快速安裝及使用

100個有趣的Python專案,建議收藏!

46、django-blog-tutorial:基於最新版 Django 1。10 和 Python 3。5,透過 26 篇教程一步步帶你使用 Django 從零開發一個個人部落格系統,在實踐的同時掌握 Django 的開發技巧,完成效果展示

47、aredis:一款基於 Python3 asyncio 的非同步 redis 客戶端,支援對於單例項,連線池, 哨兵以及叢集。作者希望可以找到志同道合的小夥伴集思廣益,一起維護、最佳化。示例程式碼如下:

48、freezegun:時間漫步模組,模擬到某一個時間,使用簡單方式多樣,實現了裝飾器、上下文等呼叫方式。示例程式碼如下:

49、LearnPython:這一個以”擼程式碼“的形式學習 Python 的程式設計技巧的專案,針對 Python 的一些語法特性力求透過程式碼例子解釋該知識點、同時還有一些實踐專案,透過動手實踐有助於知識的融會貫通。同時可以關注作者的知乎專欄學習更多的 Python 程式設計技巧

50、getproxy:極簡的抓取代理專案,無需配置。不僅提供了獲取代理指令碼,同時可以透過該頁面,直接獲取可用代理(15min 更新、型別包含http和https)

51、syncPlaylist:在網易雲音樂與 QQ 音樂之間同步歌單。易於使用、配置方便、程式碼簡單,用到的技術: +  以及  +

52、GetSubtitles:透過拖曳影片檔案進終端,一步下載字幕 到影片對應資料夾,並重命名字幕名稱為影片名稱。Ubuntu 16。04、Windows 10上測試透過,同時相容 Python2、3。Python 的魅力之一就是可以快速實現一個適合自己的小工具 Cool ✌️

100個有趣的Python專案,建議收藏!

53、huey:結合 redis 實現的輕量任務佇列,但是支援功能還是很多的:

多程序、多執行緒、協程

任務定時執行

任務執行失敗重試

結果儲存

54、simiki:一個簡單的個人 Wiki 框架,便於快速搭建 Wiki 頁。使用 Markdown 書寫 Wiki, 生成靜態 HTML 頁面。Wiki 原始檔按目錄分類存放, 方便管理維護。中文文件

55、pyecharts:Echarts+Python 實現的一個用於生成 Echarts 圖表的類庫

100個有趣的Python專案,建議收藏!

56、proxy_pool:基於 Python 的自建代理 IP 池服務,透過網路爬蟲抓取網際網路上免費的代理 IP,本地校驗、剔除失效的代理IP,從而實現高可用的代理 IP 池。最後使用 Flask 搭建提供代理 IP 服務,包括代理池重新整理、無效代理刪除、代理獲取等。該專案設計文件詳細、模組結構簡明易懂,同時適合爬蟲新手更好的學習爬蟲技術

100個有趣的Python專案,建議收藏!

57、WeiboSpider:分散式微博爬蟲,支援快速抓取和穩定抓取兩種執行模式。專案模組邏輯清晰、註釋豐富、便於定製化自己的需求。同時,對於小白使用者,可以透過演示影片快速入門,也提供QQ群答疑,已經持續維護一年多。靠譜的專案,小夥伴們要趕快上車~

100個有趣的Python專案,建議收藏!

58、pygorithm:一個幫助學習主要演算法的庫,可以透過理解這些演算法的實現,提高自己的演算法水平。氣泡排序示例:

59、newspaper:強大的提取 Web 的內容、文章的庫,支援多種語言,安裝命令 。示例程式碼:

60、faker:用於生成假資料的庫,支援多種語言,你值得擁有。示例程式碼:

61、binlog2sql:從 MySQL binlog 解析出你要的 SQL。根據不同選項,提供如下功能

資料快速回滾,閃回原理與實踐

主從切換後新 master 丟資料的修復

從 binlog 生成標準SQL,帶來的衍生功能

62、pandas-tutorial:這套 pandas 教程包含從初級到進階的內容,適合初學者和希望進階建立知識體系的資料科學從業者閱讀。作者還在持續更新高階內容,你值得擁有

63、pysheeet:Python 速查表,線上閱讀

64、robobrowser:提供多種模擬操作網頁的庫,比如獲得網頁內容、訪問連結、點選按鈕、填充並提交表單、上傳檔案。使用簡單、API 友好。適用於想要透過指令碼流程化操作,某些未提供這些操作介面的場景,示例程式碼如下:

66、records:Kenneth Reitz 大神的系列,Records 是一個支援大多數主流關係資料庫的原生 SQL 查詢第三方庫。API 友好,使用簡單、支援命令列模式、功能多樣。與此同時該庫只有 500 行程式碼,可以當作入門閱讀原始碼的專案,同時學習大神的程式設計技巧與習慣,示例程式碼如下:

67、zdict:方便的終端字典工具,支援多種字典和引數、翻譯結果高亮、以及互動模式查詢。安裝命令 (僅支援 Python3)。查詢效果如下圖所示:

100個有趣的Python專案,建議收藏!

68、joblib:使用 Python 方便的進行平行計算,示例程式碼如下:

69、tldr-python-client:Linux man 解釋一般都太長了,很多時候我們就想用一些比較常用的命令,但卻記不起來。這個時候如果不 Google,就可以用 tldr(簡化 man 的工程)。該專案為 Python 客戶端實現

100個有趣的Python專案,建議收藏!

70、thefuck:在 Linux 命令列中,當你輸入的命令有錯誤後,直接輸入  就可以自動執行修復後的命令,效果圖如下:

100個有趣的Python專案,建議收藏!

71、youtube-dl:強大的影片下載工具,支援幾百個國內外主流影片網站。正如名字一樣,最初是為了下載 youtube 上的影片而開發的。如果有國外伺服器的朋友,可以充分利用這個工具,下載 youtube 上的影片,速度不要太爽。下面介紹安裝、下載影片等命令:

72、jieba:強大的 Python 分詞庫,拿來直接用就好。示例程式碼如下:

73、pydu:該庫將平時常用的資料結構和工具都收錄其中,可供日常開發的使用,同時方便學習與借鑑,豐富的文件能幫助新手更好的理解和使用它。這些實用的模組都是來自於開源專案和貢獻者們的智慧,快來加入到這個專案中,讓它變得更加實用和豐富

74、shell-functools:把函式式的程式設計帶入 shell,從而讓很多事情變得簡單。透過 Python 的高階函式和內建模組 os。path 與命令的管道結合,達到了強大、高效的功效。相比於單純的命令實現更加的直觀和容易理解,示例程式碼如下:

75、tqdm:強大、快速、易擴充套件的 Python 進度條庫。我想透過下面的示例程式碼和效果展示圖,你會跑去給這個專案來個 Star 的

100個有趣的Python專案,建議收藏!

76、HAipproxy:使用 Scrapy+Redis 實現的高可用分散式 IP 代理池,為大型分散式爬蟲提供高可用低延遲的代理 IP 資源。

以知乎為目標抓取網站,該代理IP池的實際效能測試結果如下:

100個有趣的Python專案,建議收藏!

77、MovieHeavens:基於 Pyqt4 的電影天堂電影搜尋工具,再也不用忍受各種廣告和點選跳轉了

100個有趣的Python專案,建議收藏!

79、Synonyms:中文近義詞工具包。支援自然語言理解的很多工:文字對齊、推薦演算法、相似度計算、語義偏移、關鍵字提取、概念提取、自動摘要、搜尋引擎等。示例程式碼如下:

100個有趣的Python專案,建議收藏!

80、pook:模擬 HTTP 請求結果的庫,可用於單元測試等場景。採用裝飾器方式呼叫的示例程式碼如下:

81、incubator-airflow:定時任務管理平臺,管理和排程各種離線定時任務,自帶 Web 管理介面。當定時任務量達到百級別的時候,就無法再使用 crontab 有效、方便地管理這些任務了。該專案就是為了解決了這個問題而誕生的

100個有趣的Python專案,建議收藏!

82、wtfpython:有趣、令人驚訝(坑爹)、鮮為人知的 Python 程式碼片段集合。中文

100個有趣的Python專案,建議收藏!

83、redis-faina:Redis 效能分析器。提供兩種模式分析模式:命令實時、讀取日誌。其原理是使用 Redis MONITOR 命令,將該命令的結果透過管道傳遞給 redis-faina 指令碼,指令碼將返回的資訊解析,並匯成總成統計資訊。具體資訊如下所示:

84、marshmallow:使用類似於 ORM 的語法,序列化、反序列化 Python 物件。可以將序列化的物件呈現為標準格式,適用於例如資料校驗、返回 HTTP API 的 JSON。示例程式碼如下:

85、tenacity:使用該庫可以優雅地實現各種需求的重試。示例程式碼如下:

86、unimatrix:模擬“駭客帝國”影片中的終端動畫指令碼

100個有趣的Python專案,建議收藏!

87、pudb:基於控制檯的全屏 Python 視覺化偵錯程式。比 pdb 好用太多了,特性:

原始碼語法高亮,棧、斷點、變數可見並且一直動態更新。變數展示還有很多可以定製化的功能。

基於鍵盤,簡單高效。支援 VI 的滑鼠移動。還支援 PDB 的某些命令

支援查詢原始碼,可以使用 m 代用 module browser 檢視載入的模組

斷點設定。滑鼠移到某行程式碼,按 b,然後可以在斷點視窗編輯斷點

100個有趣的Python專案,建議收藏!

88、Scylla:一款高質量的免費代理 IP 池工具,僅支援 Python 3。6。中文文件,特性如下:

自動化的代理 IP 爬取與驗證

易用的 JSON API

簡單但美觀的 web 使用者介面,基於 TypeScript 和 React(例如,代理的地理分佈)

最少僅用一行程式碼即可與 Scrapy 和 requests 進行整合

等等

100個有趣的Python專案,建議收藏!

89、hue:開源的 Apache Hadoop UI 系統。透過使用 Hue 我們可以在瀏覽器端的 Web 控制檯上與 Hadoop 叢集進行互動來分析處理資料。核心功能:

資料視覺化

SQL 編輯器,支援 Hive、Impala、MySQL等

可進行 workflow 的編輯、檢視

100個有趣的Python專案,建議收藏!

90、FeelUOwn:一個符合 Unix 哲學的跨平臺的音樂播放器,主要面向 Linux/macOS 使用者。特性:

安裝簡單,新手友好

預設提供國內各音樂平臺外掛(網易雲、蝦米、QQ)

較強的可擴充套件性可以滿足大家折騰的慾望

核心模組有較好文件和測試覆蓋

100個有趣的Python專案,建議收藏!

91、tinydb:TinyDB 是使用純 Python 編寫的 NoSQL 資料庫,使用 json 檔案儲存資料。它區別於 SQLite 的關係性資料庫。同樣的小、不需要依賴外部伺服器。適用於桌面程式、客戶端,不適用於 Web 應用、高效能的資料查詢。友好的 API,示例程式碼:

92、TGmeetup:蒐集、整理、展示、報名技術類線下聚會的命令列工具,讓使用者可以更加方便、及時的獲取技術類活動資訊

93、termtosvg:Python 寫的終端記錄器。透過命令  執行該工具,然後在終端執行你要展示的命令,最終輸入  命令結束錄製,本地會生成一份 SVG 動畫,可用於分享、展示終端操作。效果如下:

100個有趣的Python專案,建議收藏!

94、cx-extractor-python:這是一個對網頁正文進行抽取的工具。 cx-extractor 演算法的 python 版本,改進了原有演算法,使其支援中英文,對新聞類網頁正文抽取效果較好。示例程式碼:

95、awslogs:一個簡單的命令列工具,用於在本地查詢 Amazon CloudWatch 日誌,強大的支援多例項日誌彙總檢視。簡單的檢視命令:

100個有趣的Python專案,建議收藏!

96、CUP:CUP 基礎庫是百度開源的 Python 語言基礎庫,致力將 DEV 從涉及底層操作、Util 操作類解放出來,使其更關注構建 service 上層業務邏輯。目前已涵蓋了構建一個服務的各個方面,大家可以從基礎庫的程式碼結構、wiki、doc 中進行簡單瞭解。

97、supervisor:Python 開發的一個 C/S 服務,是 Linux/Unix 系統下的一個程序管理工具,不支援 Windows 系統。它可以很方便的監聽、啟動、停止、重啟一個或多個程序。用 Supervisor 管理的程序,當一個程序意外被殺死,supervisort 監聽到程序死後,會自動將它重新啟動,很方便的做到程序自動恢復的功能,提高系統、服務的穩定性,多用於生產環境

98、himawaripy:一個 Python3 指令碼,它會定時(需設定定時任務)抓取由日本 Himawari 8 氣象衛星拍攝的接近實時的地球照片,並將它設定成你的桌面背景

100個有趣的Python專案,建議收藏!

99、loguru:一個讓 Python 記錄日誌變得簡單的庫

100個有趣的Python專案,建議收藏!

100個有趣的Python專案,建議收藏!

全部專案連結已上傳,下方公眾號回覆「

專案

」即可獲取。