首页 >后端开发 >Python教程 >如何删除非 ASCII 字符同时保留句点和空格?

如何删除非 ASCII 字符同时保留句点和空格?

DDD
DDD原创
2024-10-19 20:37:29989浏览

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