首頁 >後端開發 >Python教學 >如何在 Python 中過濾非 ASCII 字元同時保留空格和句點?

如何在 Python 中過濾非 ASCII 字元同時保留空格和句點?

Patricia Arquette
Patricia Arquette原創
2024-10-19 20:33:29569瀏覽

How to Filter Non-ASCII Characters While Preserving Spaces and Periods in Python?

刪除非ASCII 字元同時保留空格和句點

在Python 中,你可能會遇到需要過濾掉非ASCII 的情況串中的字符,同時保持空格和句點完整。為此目的提供的代碼稱為 onlyascii(),目前會刪除所有非 ASCII 字符,包括所需的字符。

要解決此問題,請考慮修改 onlyascii() 函數以包含對空格和空格的特殊處理期間。一種方法是使用 Python 的 string.printable,它包含一組被視為可列印的字符,包括空格和句點。

在 onlyascii() 函數中,您可以過濾掉非 ASCII 字符,同時允許空格通過檢查字符是否在 string.printable 集中來傳遞句點。操作方法如下:

def onlyascii(char):
    if ((ord(char) < 48 or ord(char) > 127)
            and (char not in string.printable)):
        return ''
    else:
        return char

透過將不在 string.printable 條件中的字元加入 if 語句,可以確保保留空格和句點,即使它們超出了 ASCII 範圍。將此修改合併到 get_my_string() 函數中,您現在可以過濾掉非 ASCII 字符,同時保留空格和句點:

def get_my_string(file_path):
    f=open(file_path,'r')
    data=f.read()
    f.close()
    filtered_data=filter(onlyascii, data)
    filtered_data = filtered_data.lower()
    return filtered_data

以上是如何在 Python 中過濾非 ASCII 字元同時保留空格和句點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn