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 表示要刪掉該字元。

相關參考資料:

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置