Python 使用 datetime isoformat 的正確姿勢
近來查閱 Python 關於 datetime 的標準日期格式(datetime.isoformat)的時候,發現一個奇妙的行為,該行為可能造成日期格式不一致。
Posted on Dec 10, 2020 in Python 程式設計 - 初階 by Amo Chen ‐ 1 min read
近來查閱 Python 關於 datetime 的標準日期格式(datetime.isoformat)的時候,發現一個奇妙的行為,該行為可能造成日期格式不一致。
Posted on Dec 10, 2020 in Python 程式設計 - 初階 by Amo Chen ‐ 1 min read
Python 的 os 模組提供不少便利的功能讓我們能夠操作檔案/資料夾的路徑、操作等等。直到 Python 3.4 之後提供一個新模組 pathlib,將各種檔案/資料夾相關的操作封裝在 Path 等類別之中,讓檔案/資料夾的操作更加物件導向。
本文將說明與展示 pathlib 模組。
Posted on Oct 19, 2020 in Python 程式設計 - 初階 by Amo Chen ‐ 3 min read
Python 其實內建許多好用的模組,如果運用得當,不僅節省開發時間,還能讓程式碼看起來更加簡潔。
itertools 就屬於內建好用的模組之一,該模組提供不少讓我們能夠方便地處理 iterable (例如 dict, list, tuple, str 等類型的資料),譬如環型走訪、分類群組(group by)、乘積(product)等等。
如果 itertools 內建的函式還不夠的話,還可以安裝 more-itertools 。 more-itertools 提供更多額外的函式可供利用。
本篇將介紹幾種 itertools/more-itertools 中簡單易用的函式,提供除了自己動手實作之外的方法,不僅能夠節省重複開發輪子的時間,也能夠讓程式看起來更加優雅、簡潔。
Posted on Aug 9, 2020 in Python 程式設計 - 初階 , Python 模組/套件推薦 by Amo Chen ‐ 4 min read
Python 內建的 multiprocessing 是相當重要的模組,如果有平行(parallelism)處理的需求,除了內建的 threading 模組之外,另一個就屬 multiprocessing 。
使用 multiprocessing 的好處在於能夠很大程度避開 Python GIL 對於程式效能的影響,但壞處則是對於記憶體的耗用程度也較高,即便如此也是一個必須了解的模組。
本篇將實際透過幾個範例學習如何使用 multiprocessing 模組。
Last updated on Aug 8, 2023 in Python 程式設計 - 初階 by Amo Chen ‐ 5 min read
Python 近 10 年來一直在演進,因此 Python 專案的開發也需要考慮版本的問題。
特別是 Python 2 已經退休了,而現在的 Python 專案都以 Python 3 為主,然而有些公司內部的老舊專案仍以 Python 2 開發,因此開發者必須在 Python 2 與 3 之間進行切換。
如果你有 Python 版本切換上的困擾,那麼 pyenv 會是你的好朋友!
Last updated on Mar 13, 2023 in Python 程式設計 - 初階 , Python 模組/套件推薦 by Amo Chen ‐ 2 min read
最近在看 Elastic APM agent for Python 的原始碼時,看到該專案的開發者有使用 atexit 模組,在 APM agent 關閉前先關閉 metrics collect timer 。
由於對 atexit
不甚熟悉,因此特以此文研究一番。
Posted on Sep 21, 2019 in Python 程式設計 - 初階 by Amo Chen ‐ 2 min read
Python 雖然有為 datetime 模組提供方便的 timestamp() 方法,但仍有需要注意的地方,否則將會導致我們拿到錯誤的時間戳(timestamp),衍伸出不必要的麻煩。
Posted on Jul 27, 2019 in Python 程式設計 - 初階 by Amo Chen ‐ 1 min read
年紀越大越容易金魚腦發作,有些東西不記錄成文章就特別容易忘。
本文記錄 Python 幾種常用的檔案(包含壓縮檔)與資料夾操作,以供速查之用。
Posted on Dec 13, 2018 in Python 程式設計 - 初階 by Amo Chen ‐ 2 min read