首页  >  文章  >  后端开发  >  如何在 Python 中过滤非 ASCII 字符同时保留空格和句点?

如何在 Python 中过滤非 ASCII 字符同时保留空格和句点?

Patricia Arquette
Patricia Arquette原创
2024-10-19 20:33:29502浏览

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