Python 去除 Python 字符串中的不可打印字符

Python 去除 Python 字符串中的不可打印字符

在本文中,我们将介绍如何使用 Python 去除字符串中的不可打印字符。不可打印字符是指 ASCII 控制字符,它们无法在屏幕上显示出来,包括换行符、制表符、回车符等。

Python 提供了多种方法来去除字符串中的不可打印字符。接下来我们将介绍三种常用的方法,并且给出示例说明。

阅读更多:Python 教程

使用 str.translate() 方法

str.translate() 方法可以返回字符串的副本,并且根据提供的删除列表删除指定的字符。我们可以使用 str.maketrans() 方法创建一个删除列表,其中包含所有不可打印字符。

下面的代码展示了如何使用 str.translate() 方法去除字符串中的不可打印字符:

import string

def remove_nonprintable_characters_1(text):
    printable = set(string.printable)
    return ''.join(filter(lambda x: x in printable, text))

text = "Hello,\nPython!\r"
result = remove_nonprintable_characters_1(text)
print(result)  # 输出结果为:Hello,Python!
Python

上面的代码中,我们首先导入了 string 模块来获取所有可打印字符的集合。然后,我们定义了一个名为 remove_nonprintable_characters_1() 的函数,它接受一个字符串作为输入,并返回去除不可打印字符后的字符串结果。

在函数内部,我们先创建了一个名为 printable 的集合,其中包含了所有可打印字符。然后,我们使用 filter() 函数和 lambda 表达式对字符串进行过滤操作,只保留 printable 中的字符。最后,我们使用 str.join() 方法将过滤后的字符列表拼接成一个字符串,并返回结果。

使用正则表达式

除了使用 str.translate() 方法外,我们还可以使用正则表达式来去除字符串中的不可打印字符。

下面的代码展示了如何使用正则表达式去除字符串中的不可打印字符:

import re

def remove_nonprintable_characters_2(text):
    pattern = r'[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]'
    return re.sub(pattern, '', text)

text = "Hello,\nPython!\r"
result = remove_nonprintable_characters_2(text)
print(result)  # 输出结果为:Hello,Python!
Python

上述代码中,我们定义了一个名为 remove_nonprintable_characters_2() 的函数,它接受一个字符串作为输入,并返回去除不可打印字符后的字符串结果。

在函数内部,我们定义了一个名为 pattern 的正则表达式模式,它匹配所有不可打印字符的 ASCII 值范围。然后,我们使用 re.sub() 函数来替换匹配到的不可打印字符为空字符,从而达到去除的目的。

使用 ord() 和 chr() 函数

除了以上两种方法外,我们还可以使用 ord() 函数将字符转换为 ASCII 值,然后通过判断 ASCII 值是否在可打印字符的范围内,来去除字符串中的不可打印字符。

下面的代码展示了如何使用 ord()chr() 函数去除字符串中的不可打印字符:

def remove_nonprintable_characters_3(text):
    printable = [chr(i) for i in range(32, 127)]
    return ''.join(filter(lambda x: ord(x) in range(32, 127), text))

text = "Hello,\nPython!\r"
result = remove_nonprintable_characters_3(text)
print(result)  # 输出结果为:Hello,Python!
Python

上述代码中,我们定义了一个名为 remove_nonprintable_characters_3() 的函数,它接受一个字符串作为输入,并返回去除不可打印字符后的字符串结果。

在函数内部,我们使用列表推导式生成一个名为 printable 的列表,其中包含了所有可打印字符。然后,我们使用 filter() 函数和 lambda 表达式对字符串进行过滤操作,只保留 ASCII 值在 32 到 126 范围内的字符。最后,我们使用 str.join() 方法将过滤后的字符列表拼接成一个字符串,并返回结果。

总结

本文介绍了如何使用 Python 去除字符串中的不可打印字符。我们介绍了三种常用的方法:使用 str.translate() 方法、使用正则表达式以及使用 ord() 和 chr() 函数。通过这些方法,我们可以方便地去除字符串中的不可打印字符,以满足各种字符串处理的需求。希望本文对您有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册