Python 将字符串中的 '\0' 替换为 null
Python replace '\0' in string with null
我目前遇到一个奇怪的问题。
我想用 'null' 替换字符串中的 '\0' 并阅读了很多论坛并且总是看到相同的答案:
text_it = "request on port 21 that begins with many '[=11=]' characters,
preventing the affected router"
text_it.replace('[=11=]', 'null')
或
text_it.replace('\x00', 'null')
当我现在打印字符串时,我得到以下结果:
"request on port 21 that begins with many '[=13=]' characters, preventing the
affected router"
什么都没发生。
所以我使用了这个方法,它奏效了,但对于这么小的改变来说似乎太费力了:
text_it = text_it.split('[=14=]')
text_it = text_it[0] + 'null' + text_it[1]
知道为什么替换功能不起作用吗?
字符串是不可变的,所以不能通过replace()
方法修改。但是这个方法returns是预期的输出,所以你可以把这个返回值赋值给text_it
。这是(简单的)解决方案:
text_it = "request on port 21 that begins with many '[=10=]' characters, preventing the affected router"
text_it = text_it.replace('[=10=]', 'null')
print(text_it)
# request on port 21 that begins with many 'null' characters, preventing the affected router
在一行中:
text_it = text_it.replace('[=10=]', 'null').replace('\x00', 'null')
我目前遇到一个奇怪的问题。 我想用 'null' 替换字符串中的 '\0' 并阅读了很多论坛并且总是看到相同的答案:
text_it = "request on port 21 that begins with many '[=11=]' characters,
preventing the affected router"
text_it.replace('[=11=]', 'null')
或
text_it.replace('\x00', 'null')
当我现在打印字符串时,我得到以下结果:
"request on port 21 that begins with many '[=13=]' characters, preventing the
affected router"
什么都没发生。
所以我使用了这个方法,它奏效了,但对于这么小的改变来说似乎太费力了:
text_it = text_it.split('[=14=]')
text_it = text_it[0] + 'null' + text_it[1]
知道为什么替换功能不起作用吗?
字符串是不可变的,所以不能通过replace()
方法修改。但是这个方法returns是预期的输出,所以你可以把这个返回值赋值给text_it
。这是(简单的)解决方案:
text_it = "request on port 21 that begins with many '[=10=]' characters, preventing the affected router"
text_it = text_it.replace('[=10=]', 'null')
print(text_it)
# request on port 21 that begins with many 'null' characters, preventing the affected router
在一行中:
text_it = text_it.replace('[=10=]', 'null').replace('\x00', 'null')