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

Patricia Arquette
发布: 2024-10-19 20:33:29
原创
501 人浏览过

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

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!