2016-11-15 159 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'。 自解析器是一个自写函数,它将字符串解析为正常的符号和'\ xXX'构造。 –

回答

0

可以使用eval(或ast.literal_eval,这是更安全的,如果输入的是不是在你的手中100%):

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 =='\\ xff \\ x00B'中。 –

+0

如果输入被转义,我已经更新了工作的答案。 –