Python 將大頭照平鋪在 4x6 的相片圖檔

護照、身份證等證件申辦,常常都還是需要提供實體照片~

想要透過便利商店洗大頭照的照片,查起來超貴,但是 4*6 的照片相對便宜很多~

於是~ 來將大頭照合進 4x6 的照片,再去洗出來,在靠剪刀即可~

照片尺寸(英吋) 與 實際尺寸(厘米) (300dpi)

  • 10x15:25.4x38.1
  • 10x12:25.4x30.5
  • 8x10 :20.3x25.4
  • 6x8 :15.2x20.3
  • 5x8 :12.7x20.3
  • 5x7 :12.7x17.7
  • 4x6 :10.1x15.2
  • 3.5x5:8.9x12.7

閱讀全文〈Python 將大頭照平鋪在 4x6 的相片圖檔〉

Python 在寫入遇到 UnicodeEncodeError: 'cp950' codec can't encode 錯誤

Python3 編譯成 Windows 的 exe 檔,然後在讀檔、寫檔的時候,遇到下述錯誤:

  • UnicodeEncodeError: 'cp950' codec can't encode character '\u5efc' in position 1: illegal multibyte sequence

要怎麼解決呢?

閱讀全文〈Python 在寫入遇到 UnicodeEncodeError: 'cp950' codec can't encode 錯誤〉

Debian Linux 11 PIP 安裝遇到 site-packages is not writeable 解法

Debian Linux Python PIP 在安裝某些套件的時候(pip install package),遇到這個錯誤訊息:

defaulting to user installation because normal site-packages is not writeable normal site-packages is not writeable

於是直接把這個資料夾搬走看看(chmod 777 這些當然都測試過了)

mv ~/.local/lib/python3.9/site-packages ~/.local/lib/python3.9/site-packages2

然後在重新安裝之類的,都遇到一樣無法寫入的問題~

閱讀全文〈Debian Linux 11 PIP 安裝遇到 site-packages is not writeable 解法〉

Python 將 IPv4 CIDR subnet IP 展開

Classless Inter-Domain Routing (CIDR) (無類別域間路由) 是一個 IP 區間的表示方式,主要寫法如下:

  • CIDR 表示方式與 subnet 展開
    • 192.0.2.1/32 = 192.0.2.1
    • 192.0.2.0/24 = 192.0.2.0 ~ 192.0.2.255
    • 192.0.2.0/25 = 192.0.2.0 ~ 192.0.2.127
    • 192.0.2.128/25 = 192.0.2.128 ~ 192.0.2.255

使用 Python 要將 CIDR 展開要怎麼做呢?

閱讀全文〈Python 將 IPv4 CIDR subnet IP 展開〉

Python 判斷檔案的語系編碼 UTF-8、Big5

Python3 要開啟、讀取檔案時,若不是 UTF-8,會需要輸入檔案的語系編碼,Python 會自動都轉換成 UTF-8 做操作。

如下範例:(現在會遇到 Big5 的,大多數都是 Windows 的 CSV)

  1. with open(filename, encoding='Big5') as csvline:
  2. rows = csv.reader(csvline, delimiter=',')

但是有些來源是 Big5、有些是 UTF-8,就需要偵測語系編碼,要怎麼做呢?

閱讀全文〈Python 判斷檔案的語系編碼 UTF-8、Big5〉

PHP、Python CLI 如何直接寫到 STDERR

PHP、Python CLI 寫 Script,常常會包入 Shell Script 裡面,但是通常都會被導向 > STDOUT

想要安插 Debug message 秀在畫面上(常會遇到一些 Warn,但是那些 Warn 不知道在哪些參數才會發生),所以乾脆寫 STDERR 來看。

閱讀全文〈PHP、Python CLI 如何直接寫到 STDERR〉

Python TCP Socket Server 遇到 socket 沒有 AF_INET 問題

Python 要建立 TCP 的 Socket server 臨時存取用,但是卻遇到下述錯誤:

  • AttributeError: partially initialized module 'socket' has no attribute 'AF_INET' (most likely due to a circular import)

閱讀全文〈Python TCP Socket Server 遇到 socket 沒有 AF_INET 問題〉

Python3 Pandas DataFrame 的 Append 屬性無法使用解法

Python 的 Pandas 是蠻常使用的,在 Pandas 2.0 後,Append 屬性被拿掉了,要使用 concat 來取代,會出現下述錯誤:

  • pd dataframe append AttributeError: 'DataFrame' object has no attribute 'append'

閱讀全文〈Python3 Pandas DataFrame 的 Append 屬性無法使用解法〉