Amo Chen

Python threading.local() 解說

我們都知道多個執行緒(thread)之間會共用 Process 的記憶體,那你覺得以下範例程式的執行結果會是什麼呢?這是 2 個執行緒分別做 +1 與 -1 運算各 100,000 次的 Python 程式:

import threading


def count(thread_name, step=1):
    global v
    for i in range(0, 100000):
        v += 1 * step
    print(f'{thread_name} -> ', v, flush=True)


v = 0
t1 = threading.Thread(target=count, args=('t1', 1, ))
t2 = threading.Thread(target=count, args=('t2', -1, ))
t1.start()
t2.start()
t1.join()
t2.join()

這段範例程式的執行結果,就跟本文要解說的 threading.local() 有關。

Posted on  Sep 4, 2023  in  Python 程式設計 - 高階  by  Amo Chen  ‐ 3 min read

白話文解說 ETL vs. ELT

如果做過 Data Engineer 應該都對這 2 個縮寫不陌生,畢竟每天的工作總結起來就是這 3 個英文字母: E: Extraction (擷取) T: Transformation (轉換) L: Load (載入) 先來談談 ETL 。 ETL 的起源比較

Posted on  Sep 4, 2023  by  Amo Chen  ‐ 2 min read

Python 好用套件 - docxtpl 把 docx 文件檔變樣板(template)

遙想以前在公家機關工作時,不管什麼部門都很喜歡設計各式各樣的 docx 檔,例如用 docx 檔做例行性的報表,每天填完之後寄去給上一層的部門進行彙整,這些東西做久了就會覺得無趣,後來我就用 VBA 把 docx 檔變成樣板,裡面有著一堆可以填充文字的 placeholder, 只要執行 VBA 就可以自動產生新的 docx 檔,把分分鐘的事情變成秒秒鐘。

不過 VBA 畢竟還是沒 Python 可愛宜人,不要再用 VBA 了,能夠用 Python 解決的,都要用 Python 解!卍解!

直接交給 Python 套件 docxtpl 吧!

Posted on  Sep 3, 2023  in  Python 模組/套件推薦  by  Amo Chen  ‐ 1 min read

Python 好用套件介紹 - cloudpickle (pickle 模組的鋼鐵裝)

你有沒有遇過某些資料或類別 pickle 之後,之後要 unpickle 時出現 AttributeError 的情況,例如:

AttributeError: Can't get attribute 'A' on <module '__main__' (built-in)>

這是由於 pickle 使用的是 serialization by reference 技術,所以某些資料或類別它不會放到序列化的結果,因此這種問題可以試看看用 cloudpickle 解決。

一起看看 cloudpickle 與 pickle 模組之間的差異,以及它如何能解決你的問題吧!

Posted on  Sep 3, 2023  in  Python 模組/套件推薦 , Python 程式設計 - 中階  by  Amo Chen  ‐ 2 min read

Meta 怎麼將 Jupyter Notebook 變成可自動排程

大家都知道 Jupyter Notebook 非常好用,很適合用來開發 prototype 、跑數據分析、視覺化圖表等用途, Meta 也很仰賴 Jupyter Notebook 做數據分析、視覺化圖表等工作,而且很多要定期手動執行產

Posted on  Sep 2, 2023  by  Amo Chen  ‐ 2 min read

從原始碼偷學技術之圖片預載(preload)

Lightbox 是很知名的網頁圖片 viewer, 很多網站顯示圖片都會使用 Lightbox 以滿足使用者想放大圖片的需求。 p.s. 你在瀏覽網頁時,如果點一下圖片,那張圖片就會置中放大的話,那

Posted on  Sep 1, 2023  by  Amo Chen  ‐ 1 min read

專注於呈現程式碼的服務 - snappify

之前就想說為什麼有些文章的 OG Image 上的程式碼照片非常漂亮,還以為是純手工打造出來的圖片,真想不到這個也是一門生意⋯⋯。 snappify 是專注在如何呈現程式碼的

Posted on  Aug 31, 2023  by  Amo Chen  ‐ 1 min read