スペースとピリオドを保持しながら非 ASCII 文字を削除する
Python では、非 ASCII 文字をフィルタリングする必要がある状況に遭遇することがあります。スペースとピリオドをそのまま維持したまま、文字列から文字を抽出します。この目的のために提供されている、onlyascii() として知られるコードは、現在、必要な文字を含むすべての非 ASCII 文字を削除します。
この問題に対処するには、onlyascii() 関数を変更して、スペースと文字列に対する特別な処理を含めることを検討してください。期間。 1 つのアプローチは、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 条件にない char を 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 中国語 Web サイトの他の関連記事を参照してください。