从 Python 中的字符串中删除 \x00

使用 str.replace() 方法从字符串中删除 \x00,例如 result = my_str.replace('\x00', '')。 str.replace() 方法将删除出现的 \x00 字符,方法是将它们替换为空字符串。

my_str = 'Apple\x00\x00\x00\x00\x00'

# ✅ remove \x00 from string using str.replace()

result = my_str.replace('\x00', '')
print(result)  # ?️ 'Apple'
print(repr(result))  # ?️ 'Apple'

# ----------------------------------------

# ✅ remove \x00 from string using str.rstrip()

result = my_str.rstrip('\x00')
print(result)  # ?️ 'Apple'
print(repr(result))  # ?️ 'Apple'

# ----------------------------------------

# ✅ remove \x00 from list of strings

my_list = ['apple\x00', 'banana\x00']

result = [string.replace('\x00', '') for string in my_list]
print(result)  # ?️ ['apple', 'banana']

\x00 字符是一个空字符,它代表一个所有位都为 0 的 HEX 字节。

第一个示例使用 str.replace() 方法将所有出现的字符替换为空字符串。

str.replace 方法返回字符串的副本,其中所有出现的子字符串都被提供的替换替换。

该方法采用以下参数:

  • old 字符串中我们要替换的子字符串
  • new 每次出现 old 的替换
  • count 仅替换第一个 count 事件(可选)

请注意 ,该方法不会更改原始字符串。 字符串在 Python 中是不可变的。

my_str = 'Apple\x00\x00\x00\x00\x00'


result = my_str.rstrip('\x00')
print(result)  # ?️ 'Apple'
print(repr(result))  # ?️ 'Apple'

str.rstrip 方法返回删除了尾随字符的字符串副本。

我们将 \x00 字符传递给该方法,因此字符串末尾出现的所有 \x00 字符都将被删除。

注意 ,这仅在所有 \x00 字符都位于字符串末尾时才有效。 在所有其他情况下,使用 str.replace() 方法。


从 Python 中的字符串列表中删除 \x00

要从字符串列表中删除 \x00 字符:

  1. 使用列表推导来迭代列表。
  2. 在每次迭代中,使用 str.replace() 方法删除 x00 的出现。
  3. 新列表中的字符串不包含任何 \x00 字符。
my_list = ['apple\x00', 'banana\x00']

result = [string.replace('\x00', '') for string in my_list]
print(result)  # ?️ ['apple', 'banana']

我们使用列表推导来迭代列表。

列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

在每次迭代中,我们将出现的 \x00 字符替换为空字符串并返回结果。