处理非 ASCII 字符,保留空格和句点
处理文本文件时,通常需要删除非 ASCII 字符,而保留特定的实体,例如空间和句点。提供的 Python 代码成功过滤掉了非 ASCII 字符,但无意中也去除了空格和句点。
要解决此问题,我们需要修改 onlyascii() 函数以在过滤过程中显式排除空格和句点。这是更新版本:
<code class="python">def onlyascii(char): if char == ' ' or char == '.': return char elif ord(char) < 48 or ord(char) > 127: return '' else: return char</code>
在这个修订后的 onlyascii() 函数中,我们检查字符是否是空格(' ')或句点('.'),如果是则返回。此修改可确保这些实体保留在过滤后的字符串中。
要利用更新后的 onlyascii() 函数,我们可以修改 get_my_string() 函数以使用此函数过滤字符:
<code class="python">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)</code>
join() 方法用于连接 filter() 函数返回的可迭代对象中的字符,生成一个字符串。
通过实现这些修改,您可以删除非 ASCII 字符,同时保留空格和文本字符串中的句点,以满足您的特定项目要求。
以上是如何在删除 Python 文本文件中的非 ASCII 字符时保留空格和句点?的详细内容。更多信息请关注PHP中文网其他相关文章!