处理非 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 字符,同时保留文本字符串中的空格和句点,以满足您的特定项目要求。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3