選擇性刪除非 ASCII 字符
處理文本資料通常需要刪除非 ASCII 字符,同時保留某些符號例如空格和句點。雖然基本過濾方法可能會刪除所有非 ASCII 字符,但在某些情況下這可能並不理想。
讓我們考慮以下程式碼:
def onlyascii(char):
if ord(char) 127: return ''
else: return char
此代碼刪除所有 ASCII 值小於 48 或大於 127 的字符,有效地去除文本中的非 ASCII 字符。但是,它也會刪除空格 (ASCII 32) 和句點 (ASCII 46)。
要選擇性地刪除非 ASCII 字符,同時保留空格和句點,我們可以利用 Python 的 string.printable 模組:
import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)
string.printable 集合包含系統上的所有可列印字符,包括數字、字母、符號、空格和句點。使用這個集合作為過濾器,我們可以從字串中刪除所有不可列印的字元。
例如,如果我們有字串「some\x00string.with\x15有趣的字元」:
s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))
結果將是:
'somestring. with funny characters'
此方法有效地刪除非 ASCII 字符,同時保留空格和句點,為進一步處理提供乾淨的字符串。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3