用 grep 搭配正規表示式擷取字串
grep
是長春實用的指令,每當需要從大量日誌(log)/資料中找出含特定字串的資料行時, grep
無疑是你的好幫手。
不過 grep
會將符合條件的資料行整行列出,因此如果只想要擷取符合的字串,就需要結合正規表示式(regular expression)中的幾個方法。
grep
是長春實用的指令,每當需要從大量日誌(log)/資料中找出含特定字串的資料行時, grep
無疑是你的好幫手。
不過 grep
會將符合條件的資料行整行列出,因此如果只想要擷取符合的字串,就需要結合正規表示式(regular expression)中的幾個方法。
Python 知名套件 requests 一直是每位 Python 應用開發者在開發 HTTP client 的首選,不過該套件原生並不支援 asyncio, 無法受益於 asyncio 在 I/O 方面高效率的優點,因此如要增加使用 requests 的效率,通常會搭配 multiprocessing 或 threading 模組,透過平行(concurrent)處理提高同一時間能夠執行 HTTP 要求的數量。
所幸我們仍有 AIOHTTP 可以使用,該套件不僅提供與 requests 套件相同的功能,更原生支援 asyncio, 因此可以在不使用 multiprocessing 或 threading 模組的情況下,就能夠達到相當高的執行效率,如果想透過 asyncio 提高 HTTP client 的效能,不妨考慮使用 AIOHTTP 吧!
本文將透過實際範例學習如何使用 AIOHTTP 實作 HTTP client, 建議需有 asyncio 的基礎再閱讀本文為佳。
前陣子研究 asyncio 模組時,恰好看到其中 1 個函式 wait_for() ,該函式在 coroutine 超過時限時,會將其取消(cancel),不過 asyncio 也有提供 1 個函式能夠保護 task 被取消,該函式為 shield() ,官方文件對於 shield()
函式的說明為:
Protect an awaitable object from being cancelled .
簡而言之,能夠防止 awaitables(coroutines, Tasks, Futures) 物件被取消。
不過,實際上該怎麼使用,官方文件並沒有著墨太多,因此本文將實際透過幾個範例摸索如何使用 shield() .
自從 Python 3.4 推出 asyncio 模組之後,開發者在提升 Python 程式效能的解決方案上又多了 1 種選擇。
不過相較於較為人所熟知的 multiprocessing 與 threading 而言,大多數初學者並不習慣非同步式(asynchronous)式的開發思維,但只要能夠掌握 asyncio 模組中幾點重要的概念,即使是從未接觸過的初學者,也能夠慢慢掌握 asyncio 的使用方式。
本文將重點介紹 asyncio 模組中的重要概念,並透過實際範例理解 asyncio 的運作,從而學會如何使用 asyncio 模組。
Claude Shannon 於 Information Theory 研究中提出熵(entropy)的概念,可以說是影響後續機器學習(machine learning)發展相當重要的概念。
熵看似難以理解,但其實是 1 個很簡單的概念,只要了解其背後的意義就能夠輕鬆上手。
當 Elasticsearch 中存放大量的資料(或稱文件 document)時,一般難以片刻就遍訪每 1 筆資料,如果是為了驗證資料格式,或者需要資料進行實驗,此情況下可選擇用抽樣的方式進行,不僅可利用抽樣的方式預估整個資料庫的情況,也可以有效率地以部分資料進行實驗。
本文記錄如何以 function_score 結合 random_score 進行隨機抽樣。
先前 Python multiprocessing 模組簡單說明與範例 一文簡述 multiprocessing 模組中 Pool, Manager 的使用方法,也講述如何在多個 Processes 之間共享資料,不過仍有許多關於 multiprocessing 中的功能尚未詳述,例如 Process 類別(class), Queue, Pipe 等等,這些功能不僅重要也很實用,是邁向 Python 高階功能的必學項目,因此不可忽視。
本文將透過實際範例了解更多關於 multiprocessing 模組中實用的功能。
在 pytest 教學 一文,我們學會如何利用 pytest 更輕鬆地撰寫 Python 的測試程式,但 pytest 所提供的方便功能不僅僅如此,pytest 還有許多好用的 plugins 能夠利用,使用得當的話,將可增加開發效率。
剛好 15 amazing pytest plugins 中提到不少實用的 pytest plugins, 本文就將其中 7 項進行簡介。
除了先前分享過 用 sed 指令插入(insert)文字到檔案中的指定行數 之外, sed
指令其實還有很多方便的功能,例如編者最常使用的字串取代、刪除指定行、列印指定行等 3 種,本文將介紹這 3 種 sed 用法。