首頁  >  文章  >  後端開發  >  如何刪除非 ASCII 字元同時保留句點和空格?

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

DDD
DDD原創
2024-10-19 20:37:29898瀏覽

How to Remove Non-ASCII Characters while Preserving Periods and Spaces?

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

目標是處理儲存在.txt 檔案中的文字資料並提取不包含任何非ASCII 字元的字串,同時保留空格和句點。為了實現這一點,提供的程式碼定義了一個函數 onlyascii(),它透過檢查字元的 ASCII 值來確定是否應包含該字元。不過,它目前也刪除了句點和空格。

要修改 onlyascii() 以排除句點和空格,我們可以利用 Python 的 string.printable 模組。 string.printable 包含一組被認為可列印的字符,包括空格和句點。

利用string.printable 的onlyascii() 的更新定義將是:

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

透過將此檢查合併到onlyascii(),不可列印的字元(不包括空格和句點)將被過濾掉。

以下是更新後的 onlyascii() 函數的修正程式碼:

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

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

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

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