日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的所有库_Python 常用库

發布時間:2023/12/4 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的所有库_Python 常用库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

之前重寫了視頻字符畫處理的代碼,然后這兩天又在研究命令行和網絡。讀了一點開源工具的代碼,越來越覺得有必要針對性地學習一下一些重要的基礎庫。

這里呢就列個小清單,把我認為有必要學習的庫寫一下。

帶 [ x ] 的表示已完成

時間

time:對 c 語言庫的封裝,優點是速度快。

常用的函數:時間戳 - time.time(),睡眠 - time.sleep()

datetime:時間日期處理庫,比 time 更強大,支持在日期上進行各種操作(加減乘除)。

maya/arrow: 第三方時間日期處理庫,比 datetime 更好用。

系統

用于訪問一些由 Python Interpreter 維護的變量,一般都和系統、流、命令行參數之類的相關。

用于使用一些操作系統相關的函數,還有操作系統環境變量。(相關:比如 os.fork 在 windows 上就用不了)

系統調用函數,目的在于取代 os.system 和 os.spwan* 的庫,并提供更強大的功能。

是 fabric2 的本地方法調用模塊,比 subprocess 更強大。

SSH 遠程執行命令

Python 的 SSHv2 協議實現。使用 Python 遠程執行命令的首選庫。

構建在 paramiko 和 pyinvoke 之上,提供更方便的遠程命令執行功能。(運維用)

文件路徑

該模塊使用類來表示系統路徑,而且是操作系統無關的。終于不需要去管 Windows 和 Linux 下分隔符的差別了。

更方便的是,路徑之間的組合可以直接通過“計算”實現。(它還提供了 glob 簡化正則表達式,用于路徑匹配)

這是一個上下文管理庫,可用于自定義能使用 with 上下文管理的類。常用于 網絡、數據庫連接之類的地方。

字符串處理

[ x ] re

正則,不解釋

提供了一個 str 流對象,可讀可寫。API 等同于 open() 返回的流對象。類似 Java 的 StringBuffer BytesBuffer

網絡庫(客戶端)

[ x ] requests: 3rd

超易用的 http 請求庫

網絡協議處理的標準庫(說網絡協議,自然不僅 http 了)

Web 應用框架(服務端)

[ x ] flask: 3rd

輕量的 web 應用框架(服務端),用來寫 RESTful API 特別方便。

依賴管理、環境隔離

環境管理和依賴管理的終極解決方案,缺點是 lock 慢到吐血。

[x] poetry: 比 pipenv 更好用!

[ x ] pip

依賴管理工具,install uninstall list 都不會用還敢叫 Python 程序員?

項目打包工具,配置項還挺多的,需要用的時候再查文檔吧。。

Python 的依賴管理工具,曾經很混亂。不過現在算是越做越好了。更多的信息參見Python Packaging User Guide

迭代器、數據結構、高階函數

日志(入門簡單,深入有點難。。)

比 logging 更好用,而且支持彩色日志輸出。

測試(有待提高)

官方測試框架,師出 Junit。缺點是繁瑣。

[ x ] pytest: 3rd

看到很多熱門開源項目都用的 pytest,有時間得學一下。

使用最多的替換掉網絡請求的方式,幾乎所有場景下都可以用。所有網絡請求和 rpc 調用等都可以用 mock.patch 來模擬返回值。

就像用Java的Mockito一樣。

數據轉換

a. 持久化(這個很簡單)

一個對數據進行 object 和 bytes 之間的轉化的模塊。如果你只需要使用 Python 讀取這些數據,用 pickle 會是個很好的選擇。

[ x ] json

和 pickle 很類似,不過它做的是 object 和 json 之間的轉化。

這個模塊在網絡開發中用得很多。

b. 數據庫(已搞定)

如果需要保存數據,而且需要對其做更復雜的操作,就需要用到數據庫了。

[ x ] sqlite3: Python 自帶的文件數據庫,用于學習很方便。而且 python 數據庫驅動都遵循同一個 dbapi 標準,學會一個就學會了所有。

[ x ] PyMySQL: 3rd MySQL 的第三方連接庫,遵循 dbapi 標準。

[ x ] SQLAlchemy:ORM 框架,而且有數據庫連接池和詳細的日志系統。

c. 結構化二進制

執行 Python 對象與 C struct (bytes) 之間的轉換,一般用于解析或構建下列數據:

1. 網絡協議中的報文:IP包、TCP/UDP 包

2. 音樂、視頻文件:wav/mp3/mp4/midi 等

并發并行

多進程,由于 GIL 的存在,計算密集型工作用多線程基本沒用,這時就需要這個庫,或者用 C API.

另外因為多進程不共享數據,因此需要使用 Queue 或者 Pipe 通信。

API 和 multiprocessing 非常類似,但是要搞清楚關鍵區別:一個是進程一個是線程。

[ x ] concurrent.futures

線程池/進程池,而且提供更高層的抽象。

進階:線程池、數據庫連接池、消息隊列

異步I/O(適用于網絡編程)

協程相當于輕量級線程,特別適用于I/O密集場景。

任務調度

我有個個人項目,需要每天定時發送消息。我最初是直接加了個線程來干這個事。。然后我發現了,原來有 scheduler 這個東西。。

apscheduler:支持 asyncio 的 scheduler

其他(偏向特定領域了,非必要)

1. 數據分析/機器學習

numpy

pandas

matplotlib

2. 和 C 語言通信

和C語言通信一般有兩個用途,一是做性能優化,二是用于調用一些不開源的庫。

cffi: 3rd 不需要先行編譯,可直接在Python里寫C代碼。而且簡單干凈。

cython: 3rd 使用特殊語法,可同時調用 C 和 Python。需要性能,就用這個。

P.S. a. 為啥不說 ctypes: 因為感覺 api 太丑。用 Python 就圖個樂子,所以拒。b. C 拓展:考慮到最近很多人都說 PyPy 是未來,很多項目也明確表示支持 PyPy,C拓展方式還是盡量避免。這樣以后移植也方便。c. 各方法優缺點分析

總結

以上是生活随笔為你收集整理的python的所有库_Python 常用库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。