”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在删除 Python 文本文件中的非 ASCII 字符时保留空格和句点?

如何在删除 Python 文本文件中的非 ASCII 字符时保留空格和句点?

发布于2024-11-08
浏览:556

How to Preserve Spaces and Periods While Removing Non-ASCII Characters in Python Text Files?

处理非 ASCII 字符,保留空格和句点

处理文本文件时,通常需要删除非 ASCII 字符,而保留特定的实体,例如空间和句点。提供的 Python 代码成功过滤掉了非 ASCII 字符,但无意中也去除了空格和句点。

要解决此问题,我们需要修改 onlyascii() 函数以从过滤过程中显式排除空格和句点。这是更新版本:

def onlyascii(char):
    if char == ' ' or char == '.':
        return char
    elif ord(char)  127:
        return ''
    else:
        return char

在这个修改后的 onlyascii() 函数中,我们检查字符是否是空格(' ')或句点('.'),如果是则返回。此修改确保这些实体保留在过滤后的字符串中。

要利用更新后的 onlyascii() 函数,我们可以修改 get_my_string() 函数以使用此函数过滤字符:

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 ''.join(filtered_data)

join() 方法用于连接 filter() 函数返回的可迭代对象中的字符,生成一个字符串。

通过实现这些修改后,您可以删除非 ASCII 字符,同时保留文本字符串中的空格和句点,以满足您的特定项目要求。

版本声明 本文转载于:1729340957如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3