格式化字符代码的十六进制数字\ x

时间:2014-08-14 17:35:22

标签: python

我是Python \x00字符串格式的新手,我想知道是否有一种不错的pythonic方法可以执行类似下面的操作?我想动态地将\x格式插入到我的python字符串中。

# Is there a way get a similar effect to this?

s = "commandstring \x{}\x{}".format('00', '00')
s = "commandstring \x%s\x%s" % ('00', '00')

我的一些字符串将是常规文本和数字,但我还需要插入十六进制值

2 个答案:

答案 0 :(得分:1)

\x00表示单个字节。直接生成这些单个字节:

>>> "commandstring {}{}".format('\x00', '\x00')
'commandstring \x00\x00'

或使用chr() function生成给定整数的字节:

>>> "commandstring {}{}".format(chr(0), chr(0))
'commandstring \x00\x00'

\xhh表示法是只能在字符串文字中使用的语法。您可以构造语法,然后让Python使用eval()ast.literal_evalraw_string编解码器明确解释该语法,但这通常是而不是您需要的第一个的地方。

答案 1 :(得分:1)

我认为你想要的是%x占位符。请尝试以下方法:

s = "commandstring \x%x\x%x" % (50, 95)

它会给你

s = "commandstring \x32\x5f"

但是,你需要传递整数才能正常工作。

相关问题