我是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')
我的一些字符串将是常规文本和数字,但我还需要插入十六进制值
答案 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_eval
或raw_string
编解码器明确解释该语法,但这通常是而不是您需要的第一个的地方。
答案 1 :(得分:1)
我认为你想要的是%x
占位符。请尝试以下方法:
s = "commandstring \x%x\x%x" % (50, 95)
它会给你
s = "commandstring \x32\x5f"
但是,你需要传递整数才能正常工作。