2011年2月11日 星期五

Python 移掉 unicode 裡的 control code

先貼 code 再說:
ctrl_ords = range(32)        # 取得所有不能顯示的字元和 '\n' 以及 TAB
ctrl_ords.remove(ord('\t'))  # 去掉 TAB
ctrl_char_map = dict.fromkeys(ctrl_ords, None)  # 建立對照表
line = line.decode('utf8').translate(ctrl_char_map)  # 用 translate 移掉對照表裡的字元
str 和 unicode 的 translate 用法不同, 學 unicode 應該就夠了。unicode 版的 translate 要求傳入一個 dict, key 必須是 unicode ordinals, 沒注意到 "ordinals", 一直試都沒效果。value 可以是  unicode ordinals, strings 或 None, None 表示要刪掉該字元。

相關參考資料:

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...