2016-08-10 18 views
3

文字列の "\ x00 \ x00"を削除するにはどうすればよいですか? 私はこれらの文字列の多くを持っています(例を以下に示します)。私はre.subを使ってそれらの "\ x00"を置き換えることができます。しかし、私はそれを行うより良い方法があるかどうか疑問に思っていますか?ユニコード、バイト、文字列の間の変換は、常に混乱します。これらの " x00 x00"を削除するには

'Hello\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'.

+2

文字列から\ x00を削除するだけでなく、最初に文字列を持つ理由を考えることができます。おそらく、文字列を作成するコードはそれらを処理できますか? – Neil

+1

この文字列を生成するコードはおそらく間違っています。私は、文字列の最大の可能な長さを提供すべきであるC-ラッパーですので – user2357112

+0

@Neil、それはあります。短い文字列の場合、最後に "\ x00"が追加されます。 –

答えて

8

使用rstrip

>>> text = 'Hello\x00\x00\x00\x00' 
>>> text.rstrip('\x00') 
'Hello' 

それは、文字列の末尾にすべて\x00の文字を削除します。

9
>>> a = 'Hello\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 
>>> a.replace('\x00','') 
'Hello' 
関連する問題