删除非 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中文网其他相关文章!