在某些字符后修剪python字符串

在某些字符后修剪python字符串,python,Python,我正在创建一个程序,将字节转换为utf-16字符串。但是,有时字符串将继续,因为有尾随的0,我的字符串将以如下方式结束:“这是我的字符串x00\x00\x00”。我想在到达第一个表示尾随0的\x00或x00时修剪字符串。如何在python中实现这一点 我的问题与注释中链接的另一个问题不同,因为trim()不能完全工作。如果我有一个字符串“This is my stringx00\x00hi therex00\x00”我只想要“This is my string”,而trim会返回“This is

我正在创建一个程序,将字节转换为utf-16字符串。但是,有时字符串将继续,因为有尾随的0,我的字符串将以如下方式结束:“这是我的字符串
x00\x00\x00”
。我想在到达第一个表示尾随0的
\x00
x00
时修剪字符串。如何在python中实现这一点

我的问题与注释中链接的另一个问题不同,因为trim()不能完全工作。如果我有一个字符串“This is my string
x00\x00
hi there
x00\x00”
我只想要“This is my string”,而trim会返回“This is my string hi there”

使用
strip()
函数可以消除一些您不想要的字符,例如:

a = 'This is my string \x00\x00\x00'
b = a.strip('\x00') # or you can use rstrip() to eliminate characters at the end of the string
print(b)
您将获得
这是我的字符串
作为输出。

使用
索引('\x00')
获取第一个空字符的索引,并将字符串切片到索引

mystring = "This is my string\x00\x00\x00hi there\x00"
terminator = mystring.index('\x00')

print(mystring[:terminator])
# "This is my string"
您还可以对空字符执行
split()

print(mystring.split(sep='\x00', maxsplit=1)[0])
# "This is my string"

欢迎来到SO,你试过什么?你能给我们看一下代码吗?听起来像是你想要一个可能的副本。我试着获取字符串的索引,然后从中进行字符串操作,尝试修剪字符串,但没有成功。我会对字符串调用索引(“x00”),然后从长度中减去索引,并调用str[-diff],其中diff是长度索引。不确定是否键入,但必须使用反斜杠转义字符串中的null终止符,否则Python将尝试使用三个字符的子字符串“x00”为字符串编制索引。我在其中一个示例中遇到的问题是,可能存在类似“This is my string x00\x00\x00\hi there\x00\x00”的字符串。我仍然希望输出为“This is my string”。我使用了strip(),但这个edge case让我很反感。请尝试以下操作:
b=a[0:a.find('\x00')]
您提供的第二段代码工作正常!非常感谢。