2016-11-15 27 views
0

バイト(文字列ビュー)の文字列をPythonのバイトオブジェクトに変換する必要があります。バイトを含む文字列をバイト文字列に変換する

string = input() # string = '\xff\x00B' 
bs = samefunc(string) # typeof(bs) == bytes, len(bs) == 3 
print(bs[0]) # b'\xff' 
print(bs[1]) # b'\x00' 
print(bs[2]) # b'B' 

私のアプリでは、文字列入力が非常に大きいので、自己パーサーは非常に遅くなります。

+0

あなたは「自己パーサ」とはどういう意味ですか?また、 'bs'がバイトオブジェクトの場合、' bs [0] 'は255であり、' b '\ xff'は重要ではありません。 –

+0

あなたはそうです! 'bs'はバイトテストで、' bs [0] == 255'です。 セルフパーサーは文字列を通常のsymblosおよび '\ xXX '構造に解析する自己書き込み関数です。 –

答えて

0

(入力があなたの手の中には100%でない場合は、より安全である、またはast.literal_eval)あなたはevalを使用することができます。

s = input() # s = '\\xff\\x00B' 
bs = eval("b'%s'" % s) # typeof(bs) == bytes, len(bs) == 3 
print(bs[0]) # 255 
print(bs[1]) # 0 
print(bs[2]) # 66 
+0

それは働いていません。 's'はユーザーの' input'から取得するためです。そして '\'はエスケープしています。プログラム 's ==' \\ xff \\ x00B'にあります。 –

+0

入力がエスケープされている場合に、答えを更新しました。 –

関連する問題