首页 >后端开发 >Python教程 >如何在删除 Python 文本文件中的非 ASCII 字符时保留空格和句点?

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

Linda Hamilton
Linda Hamilton原创
2024-10-19 20:30:29612浏览

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

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn