You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3如何移除字符串末尾的0x00空字节?

解决Python移除字符串末尾0x00空字节的问题

问题原因

rstrip() 不带参数时,只会移除Python默认的空白字符(如空格、换行符、制表符等),而你要处理的 0x00 是ASCII空字符(对应字符串中的 '\x00'),不在默认移除范围内,所以直接调用 rstrip() 无效。

解决方案

1. 显式指定移除末尾的空字符

在 rstrip() 中传入 '\x00',明确告诉方法要移除末尾的空字节:

x = bytearray([0x30,0x31,0x32,0x33,0x00,0x00])
y = x.decode()
z = y.rstrip('\x00')
print(z)  # 输出: '0123'

2. 进一步得到输出'123'(去掉开头的'0')

如果需要最终输出为 123,可以在移除空字符后,再去掉开头的'0':

x = bytearray([0x30,0x31,0x32,0x33,0x00,0x00])
y = x.decode()
z = y.rstrip('\x00').lstrip('0')  # 先清末尾空字符,再清开头的0
print(z)  # 输出: '123'

3. 直接在字节数组阶段处理(无需转字符串)

如果不想转成字符串操作,也可以直接在字节数组层面移除末尾的0x00:

x = bytearray([0x30,0x31,0x32,0x33,0x00,0x00])
# 循环移除末尾的0x00
while x and x[-1] == 0x00:
    x.pop()
# 解码后去掉开头的0
z = x.decode().lstrip('0')
print(z)  # 输出: '123'

内容的提问来源于stack exchange,提问作者lucky1928

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:02:36